我的動機是我正在使用多個git存儲庫,並且我想在所有這些存儲庫上運行git status
以查看究竟是什麼。我怎樣才能在我的pushd棧上循環?
正如我經常存儲庫之間切換,我有他們在一個pushd
棧,通過dirs -v
示出爲:
0 /d/dev/helperscripts
1 /d/dev/mainsite
2 /d/dev/satellitesite
3 /d/dev/apithing
我試圖使用xargs
如下遍歷它們:
dirs | xargs -n 1 -I % bash -c 'cd -- "%" && git status '
但是,這給出以下錯誤:
bash: line 0: cd: /d/dev/helperscripts /d/dev/mainsite /d/dev/satellitesite /d/dev/apithing: No such file or directory
我覺得這令人驚訝,因爲下面的結果是預期的目錄的線break'd列表:
dirs | xargs -n 1 echo
無法用:慶典:0行:CD:〜/ tmp目錄/ IW:沒有這樣的文件或目錄 –
它失敗的命令指定'「% 「(我從你的例子中逐字抄錄)。這擴展爲'「〜/ tmp/iw」',並且'〜'在引號內使用時會失去其特殊含義。解決方案是'dirs -l'。我相應地更新了我的答案。 –
在瘋狂的dirs上使用失敗:bash:line 0:cd:/ home/tange/tmp/<#&|()!!:沒有這樣的文件或目錄 –