[英]shell find -delete — how to avoid delete itself
root
-- level-1-folder-1-dynamic
-- level-1-folder-2-dynamic-maybe-empty
-- level-1-folder-3-dynamic
-- level-2-folder-dynamic-need-to-be-deleted
-- level-2-folder-dynamic-need-to-be-deleted
-- file-1
-- file-2
I want to use find command
to delete all level-2-folders that created 30mins before, but I can't find all level-2 folders and delete them. 我想使用find command
删除之前30分钟创建的所有2级文件夹,但我找不到所有2级文件夹并将其删除。
What I can do now is to find all the files and delete them, but the level-2-folders still remain 我现在可以做的是找到所有文件并删除它们,但仍然保留level-2文件夹
find root -type -f -cmin +30 -delete
And if I using find root -type -d -empty -delete
, it will delete all the empty folders, including level-1 and root itself. 如果我使用find root -type -d -empty -delete
,它将删除所有空文件夹,包括level-1和root本身。
How can I delete all the level-2-folders? 如何删除所有2级文件夹?
Thanks 谢谢
要仅删除级别为2或更深的空目录,请使用-mindepth 2
:
find root -mindepth 2 -type d -empty -delete
to delete all level-2-folders that
created 30mins before删除之前30分钟创建的所有2级文件夹
ssam@udistro:~/so/36928504$ tree root
gives me 给我
root
|-- level1
| |-- level2dir1
| |-- level2dir2
| | `-- level2dir2file1
| `-- level2file
`-- level1emptydir
I did : 我做了:
find root -mindepth 2 -type d 2>/dev/null -exec rm -fR {} \;
The doing : 做的:
ssam@udistro:~/so/36928504$ tree root
gives me : 给我 :
root
|-- level1
| `-- level2file
`-- level1emptydir
which is what you want I guess.. 这就是你想要的我猜...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.