rmdir dir 给出错误“不是目录”

rmdir dir 给出错误“不是目录”

我有一个看起来像目录的目录dir2,我曾经将它从另一个目录移动dir1来备份它并创建了一个新的dir1.

现在我突然又看到它,意识到我不需要它并做了rm -r -f dir2,并发现我的新dir1也是空的。

我拿回了我的文件(是一个代码存储库,所以只是丢失了一些更改 - 令人沮丧),但我仍然想删除这个冗余链接或其他任何内容dir2

当我尝试时rmdir(在我意识到我删除了所有内容之前),我收到了一个错误Not a directory。它是什么以及如何删除它?在 OSX 终端上使用 bash。

更新:根据以下建议:

ls -ld dir2输出drwxr-xr-x. 19 asaf users 4096 Mar 8 13:09 dir2/

file dir2/输出dir2/: directory

file dir2输出dir2: symbolic link to ...'

答案1

鉴于证据现已删除,不可能知道发生了什么。您dir2对症状的描述符合符号链接到一个目录。符号链接是一种特殊文件,它表示“真正的文件实际上就在那里”。符号链接本身不是目录,因此rmdir无法对其执行任何操作。但是对符号链接内容的访问(指向目录的符号链接的目录中的文件,指向常规文件的符号链接的文件内容)透明地转到链接的目标,因此您不会使用cd dir2或编辑目录中的文件时注意到任何事情。

如果是这种情况(这似乎是合理的,但根本不确定!),那么该命令rm -r -f dir2仅删除了符号链接,并且包含您的更改的目录仍然存在......某处。由于您已删除该链接,因此可能很难找到位置,但您可以尝试使用以下命令查找您知道在该目录中的文件名locate命令或等效的 GUI(Spotlight?)。

未来,奔跑吧

ls -ld dir2

这会告诉你什么类型的文件dir2。如果该行以 开头d,则它是一个目录。如果该行以 开头l,则它是一个符号链接,并且输出指示它指向的位置( 后面的部分->)。

答案2

如果你运行ls -ld dir2它应该会告诉我们很多有关情况的信息。

它可能是符号链接或奇怪类型的文件。我知道此时我们假设它是一个目录,但还有其他选项。它甚至可能是丢失的自动挂载共享。

也尝试跑步file dir2。如果它不是真正的目录,您可能会看到rmdir.

相关内容