
ディレクトリ内のすべてのファイルとサブディレクトリを削除しようとしています。以前はすべてのファイルを削除しましたrm -r
が、すべてのファイルを削除したいです。そして最上位ディレクトリ自体を除くサブディレクトリ。
たとえば、ファイルとサブディレクトリをimages
含む。header.png
footer.png
header.png
これで、サブディレクトリを削除したいがfooter.png
削除しませんimages
。
Linuxでこれを行うにはどうすればよいですか?
答え1
最上位ディレクトリの名前が指定されている場合は、images
を実行しますrm -r images/*
。 NET Frameworkでシェルglob*
演算子を使用します。rm -r
images
答え2
隠しファイルを削除するには、次のように指定する必要があります。
rm -r images/* images/.*
.
以下を含むシェルの場合、..
次のエラーが発生します。
rm: cannot remove `.' directory `images/.'
rm: cannot remove `..' directory `images/..'
ただし、隠しファイルは削除されます。
エラーメッセージがない方法は、検索/削除とminlengthを使用することです。これはgnu-findです。
find images -mindepth 1 -delete
-mindepth
あなたの検索や条件が欠落している可能性があり-delete
、その場合は次のことができます。
find images/. ! -name . -prune -exec rm -rf {} +
答え3
すべてのファイルとディレクトリ(含まれている)を削除します。隠された)ディレクトリで次のことを試すことができます。
ls -Ab
すべてのファイル/ディレクトリを一致させるために使用されます。cd dir_name && rm -rf `ls -Ab`
find
すべてのファイル/ディレクトリを一致させるために使用されます。find dir_name -mindepth 1 -delete
または
find
サポートしていない場合-delete
:find dir_name -mindepth 1 -exec rm -rf {}
フォルダを削除して再作成してください
rm -rf dir_name && mkdir dir_name
バッシュでは
shopt -s dotglob rm -rf dir_name/*
答え4
このバージョンを試してください。
rm -r test/*