我有一个包含许多子目录的目录。我尝试过
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!”更快。
这也可能是您在这里遇到的问题 - 符号链接要么指向非常大的目录,要么进入某种无限循环。删除一个没有太多可递归内容的小目录不应该花那么长时间。