파일 이름을 inode로 변경

파일 이름을 inode로 변경

inode 번호를 기준으로 디렉터리의 파일 이름을 바꾸려고 합니다. 이는 파일(사진)을 촬영된 순서대로 보관하는 고유번호인 것 같습니다. 단일 파일이 아닌 전체 디렉터리로 실행하고 싶습니다.

ls -i모든 파일의 inode 번호를 제공하지만 모든 파일의 이름 바꾸기 또는 mv 데이터를 파이프해야 합니다.

현재 출력:ls -li

46923838 -rw-r--r-- 1 me me 6937237 Jan 24 15:26 DSC_1167.JPG

46923839 -rw-r--r-- 1 me me 6692804 Jan 24 15:26 DSC_1168.JPG

46923840 -rw-r--r-- 1 me me 6735745 Jan 24 15:26 DSC_1169.JPG

46923841 -rw-r--r-- 1 me me 7709324 Jan 24 15:26 DSC_1170.JPG

46923842 -rw-r--r-- 1 me me 7645673 Jan 24 15:26 DSC_1171.JPG

원하는 결과:

46923838 -rw-r--r-- 1 me me 6937237 Jan 24 15:26 46923838.JPG

46923839 -rw-r--r-- 1 me me 6692804 Jan 24 15:26 46923839.JPG

46923840 -rw-r--r-- 1 me me 6735745 Jan 24 15:26 46923840.JPG

46923841 -rw-r--r-- 1 me me 7709324 Jan 24 15:26 46923841.JPG

46923842 -rw-r--r-- 1 me me 7645673 Jan 24 15:26 46923842.JPG

업데이트: "exif:DateTimeOriginal:"을 가져와 파일의 새 이름으로 보내야 합니다.

Desktop2016-10-22 # 식별-상세 DSC_1140.JPG | grep EXIF:DateTimeOriginal: EXIF:DateTimeOriginal: 2016:10:22 16:29:33

데스크톱 2016-10-22 # 식별 상세 DSC_1140.JPG | grep 파일 이름: 파일 이름: DSC_1140.JPG

답변1

하드 링크를 제외하고 파일의 inode는 동일한 파일 시스템 내에서 고유함이 보장됩니다. .JPG현재 디렉토리의 파일을 반복 하고 mvfrom의 도움으로 이름을 변경(-ing)하여 stat인덱스 노드를 가져옵니다.

for i in *.JPG; do echo mv -- "$i" "$(stat -c '%i' "$i")"; done

echomv실행될 명령을 내뱉습니다 . 실제로 삭제 echo하려면 다음을 수행하세요.

for i in *.JPG; do mv -- "$i" "$(stat -c '%i' "$i")"; done

또한 최종 파일 이름에 확장명도 추가하려면 다음을 수행하십시오 .JPG.

for i in *.JPG; do mv -- "$i" "$(stat -c '%i' "$i").JPG"; done

관련 정보