我在我的“下载”目录中有一个名为“reference”的目录,其中包含一个符号链接(使用“ln -s”创建)到另一个目录。当尝试删除符号链接时,我会收到冲突的错误消息:
rm 返回“是一个目录”
rmdir 返回“不是一个目录”
这只发生在“cellranger/”(后跟正斜杠)而不是“cellranger”。
为什么这两个删除符号链接的命令都无法生效,而且会出现冲突错误?有没有建议的方法可以删除符号链接而不删除源目录中的内容。
rm 返回“是一个目录”
rmdir 返回“不是一个目录”
这只发生在“cellranger/”(后跟正斜杠)而不是“cellranger”。
[tom@rlgsw68 cellranger]$ pwd
/home/tom/Downloads/reference
[tom@rlgsw68 cellranger]$ ls -lth
lrwxrwxrwx 1 tom genome 33 Apr 4 14:52 cellranger -> /analysisdata/genomes/cellranger/
[tom@rlgsw68 cellranger]$ rm cellranger/
rm: cannot remove directory `cellranger/': Is a directory
[tom@rlgsw68 cellranger]$ rmdir cellranger/
rmdir: cellranger/: Not a directory
[tom@rlgsw68 cellranger]$ rm cellranger
为什么这两个删除符号链接的命令都无法生效,而且会出现冲突错误?有没有建议的方法可以删除符号链接而不删除源目录中的内容。
rm -rf cellranger/
也无法删除符号链接(但不会返回错误信息)。
信息:我正在运行一个Linux服务器(Debian 9.0)。这些错误发生在bash和zsh中。在示例中已删除了模棱两可的名称。当一个目录除了其内容之外还包含指向父目录的链接时,我遇到了这个问题。/home/tom/Downloads/reference/cellranger/cellranger/ -> /analysisdata/genomes/cellranger/
rm
根据-r
标志或lstat
检查所给出的对象来决定是删除文件还是目录。可能是unlink
或lstat
在进行其他检查之前会检查你提供的路径字符串。如果你提供了xyzzy/
,它可能会立即假设那是一个目录。我的建议是不要在你想要删除的内容后面添加/
:-) - paxdiablorm -rf cellranger/
不会返回错误,但无法删除目录的符号链接。rm -rf cellranger
的效果与rm cellranger
相同。 - Tom Kellycellranger/
指的是链接后面的目录,而cellranger
是软链接本身。这对于其他工具如ls
或stat
也是适用的。因此,rm cellranger
是正确的命令。 - Wiimm