すべてのファイルを削除したいが、フォルダ構造は維持したい。方法はありますか?
注:(GNU bash 4.1.5を使用しています)。
これを試して:
find . ! -type d -exec rm '{}' \;
これにより、現在の作業ディレクトリの下にある、ディレクトリを除くすべてのファイルが削除されます。このコマンドには十分注意してください。
マシンのfind
のバージョンがサポートしている場合は、
find . ! -type d -delete
コマンドfind
を使用すると、すべてのファイルを検索できますが、ディレクトリ構造は維持できます。
$ find /some/dir -type f -exec rm {} +
このUnixおよびLinuxのQ&Aのタイトルは次のとおりです: gnu find and masking the {} for some shells-which? 、escaping {}
単一ティック('
)は、Bashなどの現代のシェルではもう必要ないようです。
現在のディレクトリとサブディレクトリのすべての通常のファイルを再帰的に削除する簡単な方法:
zsh -c 'rm **/*(.)'
Zshだけが globbing qualifiers を使用して、ファイルをタイプ別に照合します。ただし、rm
コマンドはディレクトリでは機能しないため、bashでは次のコマンドを使用できます。
shopt -s globstar
rm **/*
ただし、これはrm
以外のコマンドでは機能しません。通常、find
を使用できます。
find . -type f -delete
または、find
が-delete
をサポートしていない場合:
find . -type f -exec rm {} +