この質問にはすでに回答があります :ディレクトリ内の拡張子がpdfのファイルを除くすべてのファイルを削除します
(13件の回答)
5年前に閉鎖されました。
Ubuntu
(13件の回答)
5年前に閉鎖されました。
これが状況です。
拡張子の異なる多くのファイルを含むディレクトリがあります。特定の名前のファイルを除くすべてのファイルを削除したい。
これは、GUIを使用して、すべてを選択して ctrlを押すことで簡単に実行できます。 問題のファイルの選択を解除します。
それはまさに私が望んでいることですが、コマンドラインからどのようにそれを行うことができますか?
例: dirAには次のファイルが含まれています:
a.txt
b.txt
c.php
d.html
a.db
b.db
e.html
a.txt
という名前のファイルだけを残してすべてのファイルを削除したい 。
ベストアンサー
この簡単でシンプルな優れたコマンドが付属しています:
rm !(a.txt)
使用できます!否定として
最初にエコーを使用してグロブをテストします。つまり
echo !(a.txt)
動作しない場合は、bash
shopt -s extglob
両方のa.txt
を保持したい場合 およびb.txt
、!(a.txt|b.txt)
を使用できます または!([ab].txt)
。
編集:
rm
を作成するには 再帰的に作業するには、-r
を追加するだけです。 のように
rm -r !(a.txt)
また、フォルダを操作しています。 a_dir
のように、名前をdir名に変更するだけです。
rm -r !(a_dir)