POSIXly:
find . ! -name 'file.txt' -type f -exec rm -f {} +
を除くすべての通常のファイル(再帰的に、隠しファイルを含む)を削除しますfile.txt
。ディレクトリを削除するには、に変更-type f
し-type d
、-r
オプションを追加しますrm
。
でbash
使用するには、rm -- !(file.txt)
あなたがしなければならないextglobを有効にします:
$ shopt -s extglob
$ rm -- !(file.txt)
(または呼び出しbash -O extglob
)
Kornシェルファミリでextglob
のみ機能することに注意してくださいbash
。また、使用rm -- !(file.txt)
するとArgument list too long
エラーが発生する可能性があります。
ではzsh
、extendedglobを有効にして^
パターンを無効にするために使用できます。
$ setopt extendedglob
$ rm -- ^file.txt
またはと同じ構文を使用ksh
し、bash
オプションでksh_glob
かつno_bare_glob_qual
有効。