我有一个文件夹,里面有很多文件,这些文件有几个指向它们的符号链接,比如
/some_path -> /dir/file1
/some_path2 -> /dir/file2
/some_path3 -> /dir/file3
但是我既不记得some_path
哪个文件有dir
指向它们的符号链接。
现在我需要删除dir
(出于某些原因我确实需要它)。而且我也不希望任何文件指向任何文件,dir
因为我会删除它。
我如何解除链接那些文件?如果我直接删除dir
,它们会自动解除链接吗?
答案1
要取消文件链接,
unlink /path/to/the/link_file
如果你删除它,dir
它不会自行取消链接。如果你点击之后的链接deleting dir
,它会显示如下,
答案2
如果somepath
s 位于同一位置,并假设它们与 位于同一文件系统/dir
,我们可以进行猜测并使用丹尼斯·威廉姆森方法
find -L / -xdev -samefile /dir/file1
因此,假设/dir/file1
是原始文件,并且/opt/foo
是符号链接,则此命令应/
在不跨越 的/
文件系统边界的情况下遍历并找到与原始文件相同的所有文件。这将包括符号链接和硬链接。
我们还可以用来lname
查看符号链接的内容是否指向/dir/file1
find -lname "*passwd*"
然而,更合理的方法可能是dir
先移动或删除,然后按照用户 rozcietrzewiacz 的回答在相关帖子上
find / -xdev -type l ! -exec test -e {} \; -print
如果你想摆脱那些损坏的符号链接,你-delete
也可以使用标志