$ echo 'hello' >name
Run Code Online (Sandbox Code Playgroud)
$ ln name othername
Run Code Online (Sandbox Code Playgroud)
$ ls -l
total 4
-rw-r--r-- 2 kk wheel 6 Jun 25 09:45 name
-rw-r--r-- 2 kk wheel 6 Jun 25 09:45 othername
Run Code Online (Sandbox Code Playgroud)
$ cat othername
hello
Run Code Online (Sandbox Code Playgroud)
$ rm name
Run Code Online (Sandbox Code Playgroud)
$ ls -l
total 2
-rw-r--r-- 1 kk wheel 6 Jun 25 09:45 othername
Run Code Online (Sandbox Code Playgroud)
$ cat othername
hello
Run Code Online (Sandbox Code Playgroud)
如果在删除一个硬链接的同时也删除了另一个,那么您就做错了。在这种情况下使用rm或rm -rf无关紧要,删除哪个名称也无关紧要。
删除硬链接只会删除文件的名称之一。我可以看到rm -rf可以删除两个名称的唯一方法是,如果您将它与匹配两个名称的文件名全局一起使用,或者您删除了包含它们的目录。
从评论看来,您实际上正在使用一个为目录创建硬链接的应用程序。在某些条件下,这在 macOS HFS+ 文件系统上是可能的。使用硬链接目录通常非常繁琐,并且它们的使用主要限于诸如 Apple 自己的 TimeMachine 软件之类的东西。
相关的 Stackoverflow 问题:在 OS X 中创建指向目录的硬链接的 Unix 命令是什么?
在该问题的答案中指出,需要使用unlink而不是rm -r因为rm -r删除目录的内容(以其所有名称)来删除硬链接目录。
另请参阅:强制创建目录硬链接?
| 归档时间: |
|
| 查看次数: |
3173 次 |
| 最近记录: |