%20%E3%81%99%E3%82%8B.png)
ボックス上のすべてのユーザーの Awstats の特定の構成ファイルを削除したいです。 それらを 1 行で削除する最適な方法は何ですか?
すべてのファイルは、以下の場所にあり/home
、次の構造になっています:
/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf
/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
一部の/home/{username}/domains/
フォルダーには複数のドメイン サブフォルダーがあります。
答え1
やってみました
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
警告: 次のような名前のファイルがある場合
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
つまり、 の 2 つの出現が{domain1}
一致しない場合は、上記のコマンドによってそれも削除されます。これは問題でしょうか?
PS 2回のmatchの出現が{domain1}
あなたが尋ねていることであるかどうか、または私が見落としている何か他のものがあるかどうかを確認しない限り、この質問は正規表現(regex)に関するものではありません。シェルのコマンドラインで*
、、、?
([
一致する]
)が使用される場合、それらは次のように呼ばれます。ワイルドカード。
答え2
/home
次のコマンドを実行します
find . -name 'awstats*conf' | xargs rm
結果をパイプする前に、xargs
をfind . -name 'awstas*.conf
単独で実行して、削除するファイルのみがリストされていることを確認します。xargs rm
これが確認された後にのみ、 にパイプします。
上記のように使用するとfind
、指定された正規表現に一致するファイルを再帰的に検索します。詳細については、find および xargs のマニュアル ページを参照してください。