複製
これに少し似ていると思います:delete [^ Music]
ただし、動作しません。
次のコマンドを ~/.bashrc に追加します
shopt -s extglob
次の方法で、Music フォルダーを除くフォルダー内の他のすべてを削除できるようになりました。
rm -r !(Music)
コマンドに注意してください。強力ですが、危険でもあります。
コマンドで常にテストすることをお勧めします
echo rm -r !(Music)
コマンド
rm (ls | grep -v '^Music$')
動作するはずです。「ファイル」の一部がサブディレクトリでもある場合は、それらも再帰的に削除します。
rm -r (ls | grep -v '^Music$')
警告:rm -r
危険な場合があり、誤って多くのファイルを削除する可能性があります。何を削除するかを確認したい場合は、次の出力を見てみてください。
ls | grep -v '^Music$'
説明:
ls
コマンドはディレクトリの内容を一覧表示します。引数がない場合は、デフォルトで現在のディレクトリになります。|
出力を別のコマンドにリダイレクトします。の出力がこのようにリダイレクトされると、対話型端末で入力したls
場合に表示されるような列形式ではなく、ファイル名が 1 行に 1 つずつ出力されます。ls
grep
コマンドは、行をパターンに一致させます。-v
スイッチは、パターンに一致しない行を印刷することを意味します。^Music$
は、Music で始まり、Music で終わる行、つまり文字列 Music のみに一致することを意味します。^
(行頭) および$
(行末) 文字の効果は、の-x
ようにスイッチでも実現できgrep -vx Music
ます。command (subcommand)
は、あるコマンドの出力を取り、それをコマンドライン引数として別のコマンドに渡すための fish の方法です。rm
ファイルを削除します。デフォルトでは、ディレクトリは削除されませんが、-r
("recursive") オプションはそれを変更します。man command
と入力すると、これらのコマンドなどについて学ぶことができますcommand
。