如何删除具有许多子目录的目录?

如何删除具有许多子目录的目录?

我有一个包含许多子目录的目录。我尝试过

rm -rf mydirectory

但 1 小时后它仍在运行。我尝试使用

ls -l . | egrep -c '^-'

但 30 分钟过去了,它还没有完成。

有没有更快的方法来递归删除整个目录?

答案1

/usr/bin/find /mydir_with_many_subdirs -exec rm {} \;

您还可以使用以下方法进行过滤

/usr/bin/find /mydir_with_many_subdirs -type f -exec rm {} \;  -- will delete all files
/usr/bin/find /mydir_with_many_subdirs -mtime +10 -exec rm {} \;  -- will delete dirs and files older then 10

man find 将提供更多您可以应用的过滤器。

答案2

这应该可行,但我不会使用 -f 选项。我也不想以 root 身份运行该命令!如果有任何符号链接链接回 /var/log 或 /usr/lib,那么您遇到麻烦的速度会比您说“OMGWTF!”更快。

这也可能是您在这里遇到的问题 - 符号链接要么指向非常大的目录,要么进入某种无限循环。删除一个没有太多可递归内容的小目录不应该花那么长时间。

相关内容