ファイル名を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

関連情報