无法将符号 link 删除到目录
Cannot remove symbolic link to directory
我的 Downloads
目录中有一个目录 reference
,其中包含指向另一个目录的符号 link(使用 ln -s
创建)。尝试删除 symlink:
时出现冲突的错误消息
rm
returns "Is a directory"
rmdir
returns "Not a directory"
这只发生在 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
为什么这些删除 symlink 的命令都不起作用,为什么会出现这些相互冲突的错误?在不删除源目录中的内容的情况下删除符号 link 的推荐方法是什么。 rm -rf cellranger/
也不会删除 symlink(但不会 return 出错)。
信息:我是 运行 一个 linux 服务器 (Debian 9.0)。 bash 和 zsh 都会出现这些错误。模棱两可的名称已从示例中删除。当目录除了内容之外还包含 link 到父目录时,我遇到了这个问题:
/home/tom/Downloads/reference/cellranger/cellranger/ -> /analysisdata/genomes/cellranger/
通过添加尾部斜杠,您指的是符号链接 指向 的目录,不再是符号链接本身。打印 inode 编号(路径在文件系统中引用的编号)显示取消引用符号链接和目录之间的区别:
$ cd "$(mktemp --directory)"
$ mkdir a
$ stat --format %i a/
9
$ ln --symbolic a b
$ stat --format %i b
10
$ stat --format %i b/
9
这可能与以下事实有关:符号链接永远不是目录,它始终只是一个包含路径的文件。
我的 Downloads
目录中有一个目录 reference
,其中包含指向另一个目录的符号 link(使用 ln -s
创建)。尝试删除 symlink:
rm
returns "Is a directory"
rmdir
returns "Not a directory"
这只发生在 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
为什么这些删除 symlink 的命令都不起作用,为什么会出现这些相互冲突的错误?在不删除源目录中的内容的情况下删除符号 link 的推荐方法是什么。 rm -rf cellranger/
也不会删除 symlink(但不会 return 出错)。
信息:我是 运行 一个 linux 服务器 (Debian 9.0)。 bash 和 zsh 都会出现这些错误。模棱两可的名称已从示例中删除。当目录除了内容之外还包含 link 到父目录时,我遇到了这个问题:
/home/tom/Downloads/reference/cellranger/cellranger/ -> /analysisdata/genomes/cellranger/
通过添加尾部斜杠,您指的是符号链接 指向 的目录,不再是符号链接本身。打印 inode 编号(路径在文件系统中引用的编号)显示取消引用符号链接和目录之间的区别:
$ cd "$(mktemp --directory)"
$ mkdir a
$ stat --format %i a/
9
$ ln --symbolic a b
$ stat --format %i b
10
$ stat --format %i b/
9
这可能与以下事实有关:符号链接永远不是目录,它始终只是一个包含路径的文件。