![대체 파일 이름이 포함된 텍스트 파일을 사용하여 파일 이름을 바꾸는 스크립트](https://linux55.com/image/79964/%EB%8C%80%EC%B2%B4%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
수천 개의 파일이 포함된 폴더가 있습니다.
file1.jpeg
file2.jpeg
file3.jpeg
등.
교체하려는 새 파일 이름 목록이 포함된 텍스트 파일이 있습니다.
old_filename new_filename
file3.jpeg my_dog.jpeg
file1.jpeg my_cat.jpeg
file2.jpeg my_goat.jpeg
등.
폴더에 있는 모든 파일의 이름을 새 파일 이름으로 바꾸거나 새 이름을 원래 파일 이름의 접두어로 추가하는 스크립트를 찾고 있습니다.
폴더를 검색하고 이름을 텍스트 파일과 비교한 다음 그에 따라 파일 이름을 바꾸려면 뭔가가 필요한 것 같습니다.
목록과 파일은 어떤 방식으로도 정렬되지 않습니다.
답변1
이 작업을 시도하기 전에 먼저 백업이 있는지 확인하세요.
다행스럽게도 귀하의 예에는 이전 이름과 새 이름에 공백이 없으며 하위 디렉터리에 대한 언급도 없습니다(모두 동일한 디렉터리에 있음). 따라서 목록의 모든 행은 다음과 같습니다.
- 이미지와
rename_rules.txt
같은 디렉토리에 - cd로 디렉토리에 들어가세요
달리기:
eval "$(sed 's/^/mv /g' rename_rules.txt )"
- 각 행에는
rename_rules.txt
쌍만 포함됩니다.oldname newname
sed
rename_rules
당신을 다음으로 변환하는 데 사용되었습니다 .mv oldname newname
eval
그런 다음 이를 실행하는 데 사용되므로 파일 이름이 변경됩니다.
- 각 행에는
oldname newname
면책조항: 이 간단한 짧은 스크립트에는 유효성 검사나 파일 검사가 전혀 내장되어 있지 않습니다. 따라서 이름 바꾸기 쌍 중 하나에 오류가 있을 경우를 대비해 가장 먼저 해야 할 일은 백업이 있는지 확인하는 것입니다. 최소한 백업으로 시작할 수 있습니다