2016-04-29 5 views
3
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 

を削除しないようにする方法私は前に30分を作成し、すべてのレベル-2-フォルダを削除するfind commandを使用したいが、私はすべてのレベル2のフォルダを検索し、それらを削除することはできません。
私が今できることは、すべてのファイルを検索し、それらを削除することですが、レベル-2-フォルダがまだ
find root -type -f -cmin +30 -delete
ままそして、私はfind root -type -d -empty -deleteを使用している場合、それはレベル1を含め、すべての空のフォルダを削除し、ルートそのもの。シェルは、-delete見つける - それ自体

すべてのレベル2フォルダを削除するにはどうすればよいですか?
おかげ

答えて

4

をレベル2または深いのみ空のディレクトリを削除するには、 -mindepth 2

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

私は '-mindepth 2'を試しましたが、なぜ失敗したのか分かりませんでした...ありがとう – Awakening

+1

まず、 'find root -mindepth 2 -type d -empty'を実行してくださいあなたが期待するディレクトリのリストを提供します。 – John1024

+0

ありがとうございますが、もう1つは 'not-empty 'フォルダで動作しない' -delete'です。レベル2フォルダにファイルがある場合は削除できません。 – Awakening

0

作成した30分前

[email protected]:~/so/36928504$ tree root 

は私に

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

を与えることを、すべてのレベル-2-フォルダを削除するために私がやった:

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

やっ:

[email protected]:~/so/36928504$ tree root 


は私を与える:

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

あなたは私が推測する欲しいものである。..

+0

ありがとうあなたは答えます。 1./your/path、パスはlevel-1-folderであり、動的でもあります。 2. -not -nameファイル、level-2-folderも 'root'と名前を付けると削除されませんか? – Awakening

+0

ルートのサブフォルダはlevel-1-folder-dynamicで、サブフォルダのサブはlevel-2-folder-dynamicです。削除したいのはすべてlevel-2-folder-dynamicです – Awakening

+0

@Awakening:私は持っています最後のコメント以来の編集を行った。私の出力階層plsから確認できますか?ここで、level2fileは、レベル1のディレクトリである 'level1'と' level1emptydir'を除いたファイルです。 – sjsam

関連する問題