ディレクトリの下のすべてのgitリポジトリを見つけて、それぞれを順番に「git pull」するための簡単なスクリプトを作成しようとしていました。
これは私がこれまでに見つけたものです:
find ~/ -name ".git" -type d | sed 's,/*[^/]\+/*$,,' | xargs -L1 bash -c 'cd "$1" && git pull' _
端末に貼り付けた場合、これは意図したとおりに機能します。ただし、これを.bashrc
ファイルのエイリアスにすると、次のようになります。
alias gpa="find ~/ -name ".git" -type d | sed 's,/*[^/]\+/*$,,' | xargs -L1 bash -c 'cd "$1" && git pull' _"
コマンドが機能しません。xargs によって起動されたサブシェルが受信しているものを出力するように変更しました。
alias printgpa="find ~/ -name ".git" -type d | sed 's,/*[^/]\+/*$,,' | xargs -L1 bash -c 'echo "$1"' _"
実行すると、各サブシェルは改行を出力しますが、他には何も出力しません。
なぜこれが起こっているのか誰にも答えられますか?私の直感では、エイリアスの構文に問題があると言っていますが、何が起こっているのか正確にはわかりません。