我一直试图从我的一个内置硬盘中删除一个目录,系统告诉我“无法删除该目录,因为它不是空目录。”
问题是该目录是空的!
至少,我无法使用 Thunar 文件管理器或具有 root 权限的终端看到其中的任何内容。
我要删除的目录所在的目录有以下输出ls-la
:
total 28
drwxrwxrwx 1 root root 4096 ene 15 10:01 .
drwxrwxrwx 1 root root 20480 ene 15 10:01 ..
drwxrwxrwx 1 root root 4096 ene 15 10:01 matrimonio de fiesta sara y luis hernan
并且,我想要删除的目录有以下输出:
total 8
drwxrwxrwx 1 root root 4096 ene 15 10:01 .
drwxrwxrwx 1 root root 4096 ene 15 10:01 ..
另一个目录也存在类似的情况,该目录包含 3 个文件,每次我尝试删除它们时,系统都会告诉我:“未找到文件”。
我尝试过,sudo rm -r -f
但是...没有结果!
每次使用时,历史记录都一样。这是怎么回事?
是否有其他更强大的命令可以删除目录和/或文件?
答案1
您可以删除空的带有rmdir <directory>
和的目录非空目录与rm -r <directory>
。
造成您麻烦的原因可能是以下几点:
考虑此目录的内容:
$ tree -a
.
├── empty
├── non-empty
│ └── file.txt
└── non-empty-with-hidden-file
└── .file.txt
我们有一个 epty 目录,一个包含一个文件,另一个包含一个隐藏文件。现在运行rmdir *
:
$ rmdir *
rmdir: failed to remove `non-empty': Directory not empty
rmdir: failed to remove `non-empty-with-hidden-file': Directory not empty
$ tree -a
.
├── non-empty
│ └── file.txt
└── non-empty-with-hidden-file
└── .file.txt
如您所见,empty
被删除,其他两个导致错误消息。现在您可以运行rm -r
:
$ rm -r non-empty
$ tree -a
.
└── non-empty-with-hidden-file
└── .file.txt
您的file not found
错误可能不是由 引起的rm
,而是由文件名或目录路径的拼写错误引起的。您可以使用自动完成功能 ( Tab) 来避免这种情况,而不必手动输入。
答案2
韦恩的回答是正确的,但如果出现错误,您可以添加'-f'开关rm
,“强制”删除:
sudo rm -rf "/path/to/the/directory"