亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 89737 | 回復(fù): 16
打印 上一主題 下一主題

linux shell中,unlink和rm命令有什么區(qū)別呢? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-02-16 01:16 |只看該作者 |倒序瀏覽
大家好,
最近學(xué)習(xí)linux,看到文件系統(tǒng)的基本概念:硬鏈接,發(fā)現(xiàn)shell下兩個命令,unlink和rm
比如:
shell> unlink test.txt
shell> rm      test.txt

如果test.txt這個文件不是軟鏈接,而是硬鏈接,那么,在shell下,unlink和rm對test.txt的操作在本質(zhì)上有什么區(qū)別呢?
謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2008-02-16 02:04 |只看該作者
如果是硬鏈接的話,感覺是沒區(qū)別了

論壇徽章:
0
3 [報告]
發(fā)表于 2008-02-16 02:36 |只看該作者
那如果是軟鏈接呢?
我實現(xiàn)的效果好像也是一樣

論壇徽章:
0
4 [報告]
發(fā)表于 2008-02-16 02:57 |只看該作者
strace 跑 rm 與 unlink,結(jié)果有不同地方.

1. strace rm 1.txt 片段


  1. access("1.txt", W_OK)                   = 0
  2. unlinkat(AT_FDCWD, "1.txt", 0)          = 0
復(fù)制代碼


2. strace unlink 2.txt 片段

  1. unlink("2.txt")                         = 0
復(fù)制代碼


我想可以再看看 unlink 與 unlinkat 的 manpage 說明應(yīng)該有答案 ?


  1.        The  unlinkat() system call operates in exactly the same way as either unlink(2) or rmdir(2) (depending on
  2.        whether or not flags includes the AT_REMOVEDIR flag) except for the differences described in  this  manual
  3.        page.

  4.        AT_REMOVEDIR
  5.               By default, unlinkat() performs the equivalent of unlink(2) on pathname.  If the AT_REMOVEDIR  flag
  6.               is specified, then performs the equivalent of rmdir(2) on pathname.
復(fù)制代碼


測試用 strace rm -r testdir 方式刪除一個目錄與其下的檔案目錄,結(jié)果為:


  1. access("testdir", W_OK)                       = 0
  2. unlinkat(AT_FDCWD, "testdir", AT_REMOVEDIR)   = 0
復(fù)制代碼


所以結(jié)論一般命令用 rm 或是 unlink 都可以刪除檔案,因為都是一樣的意思。系統(tǒng)面呼叫來說刪除檔案一般還是使用 unlink() 呼叫,只是有另外提供 unlinkat 提供相同機制,但是可以刪除檔案或是空目錄。

不過我想其他系統(tǒng)的 rm 與 unlink 是有差異的,比方 solaris 就不一樣。


  1. -bash-3.00$ uname -a
  2. SunOS solaris 5.10 Generic_118855-33 i86pc i386 i86pc
復(fù)制代碼


man unlink :


  1. System Administration Commands                           link(1M)

  2. NAME
  3.      link, unlink - link and unlink files and directories

  4. SYNOPSIS
  5.      /usr/sbin/link  existing-file new-file

  6.      /usr/xpg4/bin/link  existing-file new-file

  7.      /usr/sbin/unlink  file

  8. DESCRIPTION
  9.      The link and unlink  commands  link  and  unlink  files  and
  10.      directories.  Only  super-users  can  use  these commands on
  11.      directories.
復(fù)制代碼


我想詳細部份需要自行測試:p


--

[ 本帖最后由 kenduest 于 2008-2-16 03:10 編輯 ]

評分

參與人數(shù) 1可用積分 +15 收起 理由
零二年的夏天 + 15 精品文章

查看全部評分

論壇徽章:
0
5 [報告]
發(fā)表于 2008-02-16 12:49 |只看該作者
非常感謝版主大人的回復(fù)!
學(xué)習(xí)ing.....

論壇徽章:
0
6 [報告]
發(fā)表于 2008-04-02 16:33 |只看該作者
原來如此,長學(xué)問了哦哦
(不來只想打一個o,但是系統(tǒng)規(guī)定必須10個字以上)

論壇徽章:
0
7 [報告]
發(fā)表于 2011-10-11 13:57 |只看該作者
果斷錒

論壇徽章:
0
8 [報告]
發(fā)表于 2011-10-27 21:14 |只看該作者
不是很明白

論壇徽章:
0
9 [報告]
發(fā)表于 2011-12-16 22:48 |只看該作者
回復(fù) 1# new_learner


    unlink一般用于服務(wù)進程,進程在unlink時不會立刻刪除文件,而是在進程終止時刪除文件,一些服務(wù)程序通過文件及對文件加鎖來保持進程的唯一性,為了保證程序沒有正常結(jié)束下次再啟動時能正常啟動,程序會在開始時新建一個文件然后調(diào)用unlink,在CentOS下重啟后會發(fā)現(xiàn)此文件已刪除,但是用KILL -9 殺死進程時似乎不能刪除文件(要重啟才可以)

論壇徽章:
13
15-16賽季CBA聯(lián)賽之同曦
日期:2016-01-28 19:52:032015亞冠之北京國安
日期:2015-10-07 14:28:19NBA常規(guī)賽紀念章
日期:2015-05-04 22:32:03處女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午馬
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56獅子座
日期:2013-09-08 08:37:52
10 [報告]
發(fā)表于 2012-04-22 13:17 |只看該作者
很有用的帖子,收藏了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP