A의 루프 16 자 폴더의 모든 파일 이름을 잘라내는 이것과 같은 :배쉬 : 독특한 그들을 유지, 파일 이름을 잘라 내기
for i in *; do
Shortname=${i:0:16} # Let's assume I don't need the extension
mv "$i" "$Shortname"
done
문제입니다 : 두 개의 파일 이름이있을 때마다 같은 처음 16 자, 나중에 하나를 덮어 쓰게됩니다 (OS X에서 mv는 그런 식으로 동작합니다).
이름이 "Shortname"인 파일이 이미 있는지 확인할 수 있습니까? 그렇다면 "Shortname"의 마지막 문자를 숫자로 바꿉니다. 그런 다음 그 이름을 가진 파일이 존재하는지 다시 확인하고, 그렇다면 더 높은 번호를 시도하십시오. 등등. 9 번에 도착하고 모든 이름을 가져온 경우 "Shortname"의 마지막 두자를 "10"으로 대체하고 해당 파일이 이미 있는지 확인해야합니다.
예 :의 내가 거기에 다음 파일과 디렉토리가 있다고 가정 해 봅시다 : 처음 16 개 문자 모든 파일에 대해 동일한 지
MyTerriblyLongLongFirstFile.jpg
MyTerriblyLongLongSecondFile.jpg
MyTerriblyLongLongThirdFile.jpg
...
MyTerriblyLongLongFourteenthFile.jpg
...
MyTerriblyLongLongOneHundredSixtySeventhFile.jpg
...
MyTerriblyLongLongFiveMillionthFile.jpg
참고. 스크립트를 실행 한 후, 나는 그들이로 이름을 바꿀 수 싶습니다 :
MyTerriblyLongL1.jpg
MyTerriblyLongL2.jpg
MyTerriblyLongL3.jpg
...
MyTerriblyLong14.jpg
...
MyTerriblyLon167.jpg
...
MyTerribl5000000.jpg
"MyTerriblyLongLongFourteenthFile.jpg는"알파벳 정렬에 따라 달라집니다 "MyTerriblyLong14.jpg"로 이름이 변경되는 경우 그것은 중요하지 않습니다. 각자 고유 한 이름을 얻는 것이 중요합니다.
가장 좋은 방법은 무엇입니까?
당신은 사람이야. 고마워요! – Martin