意外递归 cp -R,现在无法使用 Trash 或 rm 删除文件

gal*_*ite 4 unix bash macos

使用时在路径中输入错误后cp,我似乎不小心将文件夹递归复制到自身中,现在我无法使用rm -rf或 Mac OS X 中的垃圾箱删除该文件夹Finder。该文件位于启动(因此为 HFS+J)磁盘上。

的输出rm -rf只是Directory not empty重复,如下所示:

rm: o/old/old/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old/old: Directory not empty
rm: o/old/old/old/old: Directory not empty
rm: o/old/old/old: Directory not empty
rm: o/old/old: Directory not empty
rm: o/old: Directory not empty
rm: o: Directory not empty
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能删除这个文件夹?

如您所见,我尝试重命名第一个文件夹以缩短文件路径。该文件夹移入Trash罚款,但由于以下警报对话框而不会删除:

The operation can’t be completed because the item is in use.
Run Code Online (Sandbox Code Playgroud)

Sco*_*ott 5

尝试

find o -delete
Run Code Online (Sandbox Code Playgroud)

或者

find o -depth -delete
Run Code Online (Sandbox Code Playgroud)

-depth告诉find首先转到目录树的最深处,然后再往回走。手册页说,“使用-delete自动打开该-depth选项。” 如果您的版本find不支持-delete,请尝试

find o -depth -exec rm -rf {} ";"
Run Code Online (Sandbox Code Playgroud)