删除文件和所有链接 - 硬和符号


1

如何删除与要删除的文件相关的文件和所有链接?

rm -f file.txt 只删除文件。此外,如果文件系统有任何其他硬链接,该文件将不会被删除。

最有用的方法是什么?

或者可能有一个命令来获取文件的完整链接列表。

Answers:


2

使用 ls -li filename 获取文件的inode。然后 find <the same filesystem> -inum <inode> 获取具有相同inode的文件

这将确保您找到文件的所有副本(硬链接)。软链接不感兴趣,因为它们只是指向原始文件


1
......他们只是指向原始文件 名称 。但我同意答案。
rici

1

要查找文件的所有链接(硬盘和符号文件),请使用 find 命令与 -L-samefile 选项,像这样:

find / -L -samefile file.txt

你可以把它与 rm 或与 find -delete 在一个命令中删除这些文件的操作,但是如果不先查看要删除的文件列表,就会让我感到紧张。此外,如果在找到所有链接之前删除file.txt,则查找链接会更加困难。


1
-L 应该在搜索路径之前,但我不推荐它,因为符号链接可以将搜索带入其他文件系统。你最好使用 find <File System root> -lname "*FileName" -exec ls -l {} \;。该 * 是因为链接可以指定为简单名称或前面有目录路径(绝对或相对),但它可能会给出错误的查找 - 前面有额外字符的名称,或其他目录中的相同名称: ls 将显示链接包含的内容,如果在删除文件和硬链接后运行命令,突出显示将显示哪些内容已失效。
AFH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.