我的reference
目录中有一个目录Downloads
,其中包含指向另一个目录的符号链接(使用ln -s
创建)。尝试删除符号链接时收到冲突的错误消息:
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/
答案 0 :(得分:0)
通过在末尾加斜杠,是指符号链接指向的目录,而不再是符号链接本身。打印索引节点编号(文件系统中路径引用的编号)显示了取消引用符号链接和目录之间的区别:
@Jaromanda X
这可能与以下事实有关:符号链接从来都不是目录,它始终只是一个包含路径的文件。