zshに移植したいbashにエイリアスがあります。エイリアス自体かもしれないと思っていましたが、今はただワイルドカードのようです。
grep -irl --exclude=\*.{log,class,fuegoclass,dat}* --exclude-dir={build,system,lib} data
zshからこれらのファイル拡張子とディレクトリを除外する正しい方法は何ですか?
答え1
存在する:
grep -irl --exclude=\*.{log,class,fuegoclass,dat}* --exclude-dir={build,system,lib} data
zsh
とでは最初に拡張され、次に引用符がないbash
ため、それぞれはワイルドカードを実行するパターンとして扱われます。--exclude=\*.{log,class,fuegoclass,dat}*
--exclude=\*.log* --exclude=\*.class* --exclude=\*.fuegoclass* --exclude=\*.dat*
*
たとえば、--exclude=\*.log*
現在のディレクトリの名前を--exclude=*.log
。
一致しない glob がある場合、zsh
コマンドは中断されます。では、bash
球はそれ自体で拡張されます。
ここではワイルドカードは必要ないので、すべてのワイルドカード文字を引用する必要があります(およびエラーを指摘するだけですzsh
)。bash
zsh
grep -irl --exclude=\*.{log,class,fuegoclass,dat}\* --exclude-dir={build,system,lib} data