약 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
누군가가 내가 잘못 뭐하는 거지 나에게 설명 할 수 있을까요?
예. 'alias l = 'ls -lp''그래서 별칭 정의를 수정하고, 부분을 = in '따옴표 다음에 묶으십시오. – Nic3500
[ls'의 출력을 파싱하지 않아야하는 이유] (http://mywiki.wooledge.org/ParsingLs) –
BTW, * 백 슬래시 *는 슬래시가 아닌 큰 따옴표로 이스케이프 처리됩니다. '$ '를 이스케이프 처리해야합니다 (별칭을 사용하는 경우에는 작은 따옴표를 사용하는 것이 현명하지만 Chepner는 -이 사용 사례의 경우 잘못된 것임). –