私は1年間、すべての写真のシンボリックリンクを生成するシェルスクリプトを持っています。写真は他のカメラからインポートされ、サブディレクトリにあります。
f=$(pwd);
export f;
q="2015/";
z="2015_Links/";
find $q/. \( -name "*.CR2" -o -name "*.JPG" \) -execdir sh -c 'ln -s "$PWD"/$(basename {}) "$f"/"$z"/Link_$(basename {})' {} \;
一部の写真のファイル名が同じでエラーが発生します。
ln: failed to create symbolic link ‘2015_Links/Link_IMG_1588.CR2’: File exists
この場合、既存のファイルの名前を変更したいと思います。たとえばLink_IMG_1588.CR2
、Link_IMG_1588A.CR2
。
ベストアンサー1
この問題に対する別の解決策が見つかりました。
各ファイル名が一意になるように(IMG番号+日付)、他のカメラの写真名を正常に変更しました(find
および使用)。exiv2
find 2015/. \( -name "*.CR2" -o -name "*.JPG" \) -execdir sh -c 'exiv2 -r':basename:_%Y%m%d_%H_%M_%S' rename $(basename {})' {} \;