extglob
を有効にしない限り、グロビングはそのようには機能しません シェルオプト。代わりに find
を使用することをお勧めします :
find . -maxdepth 1 -not -name '<NAME>' -or -name '<NAME>' -delete
-delete
でこのコマンドを実行する前に 出力が正しいことを確認してください
デフォルト設定で外部 proc を使用しない方法:
for f in *; do [[ $f =~ ^file[12]$ ]] || echo "$f"; done
使用しようとしている拡張グロブ構文は、デフォルトではオフになっています。使用する各スクリプトで個別に有効にする必要があります。
shopt -s extglob
スクリプトでは ls
を使用しないでください ただし、ここでは単なるプレースホルダーとして使用していたと思います.