我试图构建一个快速脚本来查找目录下的所有 git repos,并依次“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 启动的子shell正在接收的内容:
alias printgpa="find ~/ -name ".git" -type d | sed 's,/*[^/]\+/*$,,' | xargs -L1 bash -c 'echo "$1"' _"
运行时,每个子shell 都打印一个换行符,但没有其他内容。
谁能回答为什么会这样?我的直觉说这是我在别名中的语法有问题,但我不知道到底发生了什么。