MacOS bash 别名在 mv 命令中中断
MacOS bash alias breaks at mv command
我正在尝试重命名大约 40 张图像(“1.png”为“40.png”)。
第一个命令在终端中有效:
user$ ls | cat -n | while read n f; do mv "$f" "$n.png"; done
但我想将该命令变成 ~/.bash_profile.
中的别名
alias rename-png="ls | cat -n | while read n f; do mv "$f" "&n.png"; done"
alias rename-png="ls | cat -n | while read n f; do mv /"$f/" /"&n.png/"; done"
rename-png() {
ls | cat -n | while read n f; do mv "$f" "$n.png"; done
}
第一个别名不起作用,我认为这是因为引号没有转义。然而,即使在转义双引号时,命令也会在 mv
处中断。我也在函数里试过了,也没用。
错误:
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
有人可以向我解释我做错了什么吗?
不要为这么复杂的东西使用别名;只需使用一个功能。此外,不要尝试使用 ls
的输出。使用带有模式的 for
循环:
rename-png () {
i=0
for f in ./*; do
mv "$f" "$i.png"
i=$((i + 1))
done
}
我正在尝试重命名大约 40 张图像(“1.png”为“40.png”)。
第一个命令在终端中有效:
user$ ls | cat -n | while read n f; do mv "$f" "$n.png"; done
但我想将该命令变成 ~/.bash_profile.
中的别名alias rename-png="ls | cat -n | while read n f; do mv "$f" "&n.png"; done"
alias rename-png="ls | cat -n | while read n f; do mv /"$f/" /"&n.png/"; done"
rename-png() {
ls | cat -n | while read n f; do mv "$f" "$n.png"; done
}
第一个别名不起作用,我认为这是因为引号没有转义。然而,即使在转义双引号时,命令也会在 mv
处中断。我也在函数里试过了,也没用。
错误:
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
有人可以向我解释我做错了什么吗?
不要为这么复杂的东西使用别名;只需使用一个功能。此外,不要尝试使用 ls
的输出。使用带有模式的 for
循环:
rename-png () {
i=0
for f in ./*; do
mv "$f" "$i.png"
i=$((i + 1))
done
}