
접두사 "Unix_"가 있는 폴더의 모든 파일 이름을 바꿉니다. 즉, 폴더에 a.txt와 b.pdf라는 두 개의 파일이 있다고 가정하면 단일 명령으로 모두 Unix_a.txt 및 Unix_b.pdf로 이름을 바꿔야 합니다.
답변1
$ for f in * ; do mv "$f" Unix_"$f" ; done
답변2
이것이름을 바꿔라이 명령은 정규식을 사용하여 파일 이름을 바꿀 수 있으므로 매우 강력합니다. 귀하의 경우에는 이렇게 할 수 있습니다
rename 's/(.*)/Unix_$1/' *.txt
답변3
당신이 사용하는 경우지쉬쉘로서 이 기능을 사용할 수도 있습니다 zmv
.
다음 줄을 다음 항목에 추가하세요 .zshrc
.
autoload -U zmv
그런 다음 다음을 실행할 수 있습니다.
% zmv -W '*' 'Unix_*'
바라보다man zshcontrib
더 많은 정보를 알고 싶습니다.
답변4
그러나 xargs가 매우 강력한 도구(그리고 많은 시스템에서)이기 때문에 언급할 가치가 있다고 생각한다면 다른 대답이 더 나을 수도 있습니다.
이 시점에서 다음을 수행할 수 있습니다.
ls | xargs -n1 -I{} mv {} Unix_{}
편집하다:인출 간격자일스' 논평. 이 경우 이 솔루션은 인용된 기사에서 지적한 주의 사항으로 인해 해킹으로 간주되어야 합니다. 다른 답변이 훨씬 좋습니다. 나는 여전히 이것이 xargs
여전히 유용한 도구라고 생각하지만(비교적 자주 사용함 svn status
) 그의 말이 맞습니다. 단순히 디렉토리 트리의 모든 파일에 대해 일부 명령을 실행하는 것에는 이것이 답이 아니며 find가 더 좋습니다. (같은 실수를 저지르는 분들에게 댓글이 도움이 될 것 같아서 답변을 남깁니다.)