shell find -delete - 如何避免删除自身

时间:2016-04-29 02:22:29

标签: linux bash shell

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

我想使用find command删除之前30分钟创建的所有二级文件夹,但我找不到所有二级文件夹并将其删除。
我现在可以做的是找到所有文件并删除它们,但是level-2文件夹仍然是
find root -type -f -cmin +30 -delete
如果我使用find root -type -d -empty -delete,它将删除所有空文件夹,包括level-1和root本身。

如何删除所有2级文件夹?
感谢

2 个答案:

答案 0 :(得分:4)

要仅删除级别2或更深的空目录,请使用-mindepth 2

find root -mindepth 2 -type d -empty -delete

答案 1 :(得分:0)

  

删除

之前30分钟创建的所有2级文件夹
ssam@udistro:~/so/36928504$ tree root

给了我

root
|-- level1
|   |-- level2dir1
|   |-- level2dir2
|   |   `-- level2dir2file1
|   `-- level2file
`-- level1emptydir

我做了:

find root -mindepth 2 -type d 2>/dev/null -exec rm -fR {} \;

做:

ssam@udistro:~/so/36928504$ tree root


给了我:

root
|-- level1
|   `-- level2file
`-- level1emptydir

这就是你想要的......