중첩 된 폴더 모음의 모든 파일 및 폴더에서 파일 이름의 일부를 몇 층 깊이 변경하는 빠른 방법이 있습니까?


1

Windows 또는 Linux 중 하나가 작동하거나 외부 드라이브에 있거나 읽을 수 있습니다.

예를 들어 프로젝트의 모든 파일과 폴더에서 "version2"를 "version3"으로 변경 하시겠습니까?

이 경우 모든 파일 이름과 폴더 이름에서 환자 이니셜을 "환자 -1"로 변경하고 싶지만 수십에서 수백 개의 파일, 수십 기가 바이트, 약 10 명의 환자 (10 가지의 다른 것)가 있습니다.

답변:


0

Linux에서는 find모든 관련 파일을 찾은 다음 다음을 사용합니다 rename.

$ find . -name "*version2*" -exec rename version2 version3  {} \;

편집 :
아래의 @choroba의 의견에 따라이 솔루션은 util-linux 패키지의 일부로 배포 된 이름 바꾸기 (1) 과 관련이 있습니다 .


2
rename인수의 의미가 완전히 다른 두 가지 명령이 있습니다.
choroba

파일 이름의 일부일 경우 어떻게해야합니까? 즉 "JS-sample2.txt"에서 "patient1-sample2.txt"
Kirt

0

다른 곳에서 얻은 답변이지만 시도하지 않았으며 최적인지 모르겠습니다.

"원하는대로 우아하지는 않지만"* .txt "파일 끝에"-kr "이"-patient-123 "으로 바뀝니다."

검색 . -type f -iname '* .txt'| 펄-네 'cho 프; 내 $ orig = $ ; if (s / -kr (.txt) $ /-patient-123 $ 1 /) {print "$ orig \ 0 $ \ 0"; } '| xargs -0rn2 mv -i

"파일 이름 만 수행하면 다음과 같이 폴더를 별도로 수행 할 수 있습니다."

검색 . 타입 d | 전술 | 펄-네 'cho 프; 내 $ orig = $ ; if (s / -kr $ /-patient-123 /) {print "$ orig \ 0 $ \ 0"; } '| xargs -0rn2 mv -i

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.