回答:
最上位ディレクトリが呼び出されるimages場合、を実行しrm -r images/*ます。これは、シェルglob演算子*を使用して、rm -r内のすべてのファイルまたはディレクトリで実行しますimages。
隠しファイルを削除するには、次を指定する必要があります。
rm -r images/* images/.*
globに.およびが含まれるシェルでは..、次のようなエラーが発生します。
rm: cannot remove `.' directory `images/.'
rm: cannot remove `..' directory `images/..'
ただし、隠しファイルは削除されます。
エラーメッセージのないアプローチは、mindepthでfind / deleteを使用することです。これはgnu-findです。
find images -mindepth 1 -delete
あなたの検索が欠けていること-mindepthや-delete述語、その場合には、あなたが行うことができました:
find images/. ! -name . -prune -exec rm -rf {} +
rm .*は、GNUユーティリティでは少なくとも1994年以降、UNIXでは70年代後半以降、削除しない.か..、削除していません。博物館の外でファイルシステムを上にたどるシステムを見つけることはほとんどありません。rm .*
ディレクトリ内のすべてのファイルとディレクトリ(非表示のものを含む)を削除するには、次を試してください。
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/*
rm -rf *ファイルが始まるので、あなたは、ディレクトリ内のファイルの知識がない場合は安全ではありません-(ハイフン)として解釈されますrm...旗
rm -rf ./* ./.*
findここでコマンドを使用しています:
ステップ1:すべてのファイルを見つけて削除します。
find /path/to/directory/ -type f -exec rm {} \;
例:
find /home/user/Desktop/images/ -type f -exec rm {} \;
ステップ2:すべてのサブディレクトリを見つけて削除します:
find /path/to/directory/ -type d -exec rm -R {} \;
find /path/to/directory/ -type dinclude .を使用すると、ディレクトリ自体が削除されます。-mindepth他の人が言ったように、スイッチも使用する必要があります。
次のコマンドを使用してディレクトリを削除できます。
sudo rm -r directoryname1/2/3/*
3 / *の後にディレクトリ全体が削除されます。
例sudo rm -r Downloads / song / *
内にあるすべてのファイルが削除されますDownloads/song。
これは私にとって完璧に機能し、いくつかのバリエーションが毎回機能することをテストしました。
imagesディレクトリを保持するディレクトリから。
rm -frd ./images/*
前:
images/
|_ header.png
|_ footer.png
|_ subdir/
後:
images/
mkdir images/.somedir; touch images/.somefile)
エラーメッセージなしで、非表示のものを含め、現在のディレクトリ内のすべてのファイルとサブディレクトリを削除するには:
rm -rf .[^.] .??* *
または、親ディレクトリから:
rm -rf images/.[^.] images/.??* images/*
rm -Rf、そこにあるすべてのファイルとディレクトリを実行します。