「パラメータリストが長すぎます」を解決する際のこのzshの役割は何ですか?

「パラメータリストが長すぎます」を解決する際のこのzshの役割は何ですか?

私は読んだこの回答@Gillesから:

zshではmv組み込みコマンドをロードできます。

setopt extended_glob
zmodload -Fm zsh/files b:zf_\*
mv -- ^*.(jpg|png|bmp) targetdir/

問題に対する解決策として"mv: Argument list too long”。答えはzshの使用を提案しますmv(GNUとは逆)ところで、このコード行は正確に何をするのでしょうか? :

zmodload -Fm zsh/files b:zf_\*

ベストアンサー1

zsh文書を見るための最良の方法はinfo

を実行すると、info zsh次のようになります。索引(考えてみてください)index)を使用して、コマンドを説明するセクションを見つけますzmodload

を押してi入力zmoし、を押しますTabzmodloadすべての関連情報を通知する組み込みの説明に直接移動します。

つまり、zmodload -Fモジュールをロードし(ロードされていない場合)、指定されたモジュールのみをアクティブにします。特徴このモジュールでは。

ここではパターンマッチング機能を有効にしました-m。は組み込みのため、上記のコマンドはモジュールをロードし(詳細については参考資料を参照)、で始まる名前のみを有効にします。mb:zf_*b:zsh/filesinfo -f zsh -n 'The zsh/files Module,'zf_

zmodload -F zsh/files

モジュールをロードしますが、機能を有効にしないでください。

$ zmodload -FlL zsh/files
zmodload -F zsh/files -b:chgrp -b:chown -b:ln -b:mkdir -b:mv -b:rm -b:rmdir -b:sync -b:zf_chgrp -b:zf_chown -b:zf_ln -b:zf_mkdir -b:zf_mv -b:zf_rm -b:zf_rmdir -b:zf_sync

現在アクティブな機能を指定して、このモジュールの機能を一覧表示します(現在はありません)。mvzf_mv内蔵があることがわかります。

$ zmodload -mF zsh/files 'b:zf_*'
$ zmodload -FlL zsh/files
zmodload -F zsh/files -b:chgrp -b:chown -b:ln -b:mkdir -b:mv -b:rm -b:rmdir -b:sync +b:zf_chgrp +b:zf_chown +b:zf_ln +b:zf_mkdir +b:zf_mv +b:zf_rm +b:zf_rmdir +b:zf_sync

zf_mv組み込み機能は有効ですが、その機能は有効になっていないことがわかりますmv(他の組み込み機能も同様です)。つまり、次の組み込みバージョンのシステムコマンドが有効になりますが、システムコマンドをオーバーライドしません。

$ type zf_mv
zf_mv is a shell builtin
$ type mv
mv is /bin/mv

今組み込みmv〜のようにzf_mv、いいえmv、次のようにできます。

zf_mv -- ^*.(jpg|png|bmp) targetdir/

組み込みのためシステムコールがzf_mvないため、これに関連する制限にexecve()達しません。Too many args

もちろん、次のようにすることもできます。

zmodload zsh/files # without -F, all the features are enabled
mv -- ^*.(jpg|png|bmp) targetdir/

mvただし、これはシステムを組み込みの同等のシステムに置き換えることに注意してくださいzsh

エラーを克服するにはE2BIG execve()パラメータが多すぎます。外部コマンド実行時)zsh機能も提供されますzargs

次を実行します。

autoload zargs # in ~/.zshrc if you use it often

自動読み込みとしてマークしてください。

その後、次のものを使用できます。

zargs -- ^*.(jpg|png|bmp) -- mv -t targetdir/

(これはGNUをオプションmvと仮定します)。 E2BIGを避けるために、できるだけ多くのコマンドを実行してください。-tzargsmvxargs

おすすめ記事