約40枚の画像(「1.png」から「40.png」)の名前を変更しようとしています。mvコマンドでMacOSのbashエイリアスが壊れる
の端末でこの最初のコマンドが機能:
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
誰かが私が間違っているのものを私に説明してもらえますか?
Ex。 'alias l = 'ls -lp''エイリアス定義を変更し、その部分を= inの後に囲みます。 – Nic3500
[ls'の出力を解析しない理由](http://mywiki.wooledge.org/ParsingLs) –
BTW、*バックスラッシュ*はスラッシュではなく、二重引用符でエスケープするために使用されます。 '$ 'もエスケープする必要があります(エイリアスを使用する場合は、シングル引用符を使用する方が合理的ですが、これはchepnerが言うように - このユースケースの間違ったことです)。 –