접두사가 "Unix_"인 폴더의 모든 파일 이름을 바꿉니다.

접두사가 "Unix_"인 폴더의 모든 파일 이름을 바꿉니다.

접두사 "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가 더 좋습니다. (같은 실수를 저지르는 분들에게 댓글이 도움이 될 것 같아서 답변을 남깁니다.)

관련 정보