1. ホーム
  2. bash

[解決済み] unix/linuxのシェルでパターンマッチをするときに、逆ワイルドカードやネガティブワイルドカードを使うにはどうしたらいいですか?

2022-03-15 01:35:17

質問

例えば、'Music'という単語を含むファイルやフォルダを除いたディレクトリの内容をコピーしたいとします。

cp [exclude-matches] *Music* /target_directory

これを実現するために、[exclude-matches]の代わりに何を入れるべきでしょうか?

どのように解決するのですか?

Bashの場合は extglob オプションを使って、次のようにします。 lscp で、もちろんターゲットディレクトリを追加してください)

~/foobar> shopt extglob
extglob        off
~/foobar> ls
abar  afoo  bbar  bfoo
~/foobar> ls !(b*)
-bash: !: event not found
~/foobar> shopt -s extglob  # Enables extglob
~/foobar> ls !(b*)
abar  afoo
~/foobar> ls !(a*)
bbar  bfoo
~/foobar> ls !(*foo)
abar  bbar

extglobを無効にするには、後で

shopt -u extglob