このタイプのディレクトリ構造の場合:
/config/filegroups/filegroupA/files/fileA1.txt
/config/filegroups/filegroupA/files/fileA2.txt
/config/filegroups/filegroupB/files/fileB1.txt
/config/filegroups/filegroupB/files/fileB2.txt
...
rm -rf /config/filesgroups
親フォルダとすべてのサブフォルダを削除するために使用できることがわかります。
/filegroupA
しかし、削除するの/filegroupB
ではなく、などを削除したいと思います。/config/filegroups
答え1
rm -rf /config/filegroups/*
ファイルを変更せずにディレクトリ(およびディレクトリへのシンボリックリンク)のみを削除したい場合は、/config/filegroups
後でスラッシュを使用できます。
rm -rf /config/filegroups/*/
名前がaで始まるディレクトリを削除するには、.
かなり新しいbashがあるとし、dotglobシェルオプションを使用する必要があります。
shopt -s dotglob
rm -rf /config/filegroups/*/
shopt -u dotglob
答え2
私はfind
withを使用することを好みます-exec
。これにより、次のように呼び出すことができます。
find /config/filegroups/ -maxdepth 1 -mindepth 1 -type d -exec rm -rf {} \;
答え3
/config/filegroups
これにより、「隠し」ファイルとディレクトリ(名前で始まる)を含む.
すべてのファイルとディレクトリが削除されます。
find /config/filegroups -mindepth 1 -maxdepth 1 | xargs rm -rf
ファイルまたはディレクトリ名にスペースが含まれている場合は、次の手順を実行する必要があります。
find /config/filegroups -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf
ボーナス:まず、次のように削除したい項目を確認できます。
find /config/filegroups -mindepth 1 -maxdepth 1
特定のファイルまたはディレクトリを保持するには、次の手順を実行します。
find /config/filegroups -mindepth 1 -maxdepth 1 -not -name "keep"
答え4
すでにフォルダにある場合は、次のように入力します。rm -rf ./**
だから:
cd /config/filesgroups
rm -rf ./**
これは、ローカルパスからすべてのサブフォルダを削除するグローバルモードです。
./
ローカルフォルダ...と**
下のすべてのフォルダを参照してください。