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
現在のディレクトリのファイルを繰り返し、mv
fromの助けを借りて名前を変更(-ing)してstat
インデックスノードを取得します。
for i in *.JPG; do echo mv -- "$i" "$(stat -c '%i' "$i")"; done
echo
mv
実行するコマンドを発行します。実際に削除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