失われたパーティションからイメージを回復しました。各イメージのEXIFデータの作成日でそれらをソートするか、フォルダーに配置する必要があります。
digiKamとShotwellをインストールしましたが、どのオプションでもこれを行う方法が見つかりませんでした。
それらのプログラムまたは他の方法でそれを行う方法を誰かに私に説明できますか?
失われたパーティションからイメージを回復しました。各イメージのEXIFデータの作成日でそれらをソートするか、フォルダーに配置する必要があります。
digiKamとShotwellをインストールしましたが、どのオプションでもこれを行う方法が見つかりませんでした。
それらのプログラムまたは他の方法でそれを行う方法を誰かに私に説明できますか?
回答:
私のお気に入りの解決策は、ファイルの日付をexif写真の日付と同じに設定することです。これにより、任意のファイルエクスプローラーツールを使用してファイルを並べ替えることができます。
apt-get install jhead
)jhead -ft *
ます。これは、exifメタデータの作成日でファイルシステムのファイル日付を設定しますexiftoolの使用をお勧めします。あなたはそれをインストールすることができます
sudo apt install exiftool
YYYYMMDD形式の作成日に基づいてファイルの名前を変更し、最後にシーケンス番号を追加するサンプルコマンドを次に示します。
exiftool '-filename<CreateDate' -d %Y%m%d%%-.4nc.%%le -r
image.jpg
次に、作成日を名前として「YYYY-MM-DD」形式でディレクトリに移動するサンプルコマンドを示します。
exiftool -d %Y-%m-%d "-directory<datetimeoriginal" image.jpg
ドキュメントには他にもサンプルコマンドがあります:https : //sno.phy.queensu.ca/~phil/exiftool/filename.html
cd /home/me/Pictures/staging
最初に実行してから、exiftoolを呼び出します。
優れたツールは、Rapid Photo Downloaderです。
PPAの追加
sudo apt-add-repository ppa:dlynch3/ppa
更新とインストール
sudo apt-get update
sudo apt-get install rapid-photo-downloader
「失われたパーティション」を入力ソースとして使用し、Rapid Photo Downloaderのexifデータに基づいてターゲットパス/ファイル名を設定します
nautilus-columnsと呼ばれる拡張機能が追加され、MP3(ID3)、PDFなどのメタデータだけでなくEXIFデータも追加されます。これらの新しい列は、並べ替えのソースとしても使用できます。
インストール:
sudo add-apt-repository ppa:atarea/nautilus-extensions
sudo apt update
sudo apt install nautilus-columns
これは私が使用しているコードです。YYYYMMDD_originalname.jpgを追加して写真の名前を変更します
#! /bin/bash
shopt -s globstar || exit
for PIC in **
do
# look only for jpg
if [[ "$PIC" =~ \.JPG$ ]] || [[ "$PIC" =~ \.jpg$ ]]; then
# ignore jpg that have 8 numbers at beginning followed by _ or after IMG_ or P_ and followed by _ (already date stamped)
if [[ "$PIC" =~ [[:digit:]]{8}_.*$ ]] || [[ "$PIC" =~ IMG_[[:digit:]]{8}_.*$] ]] || [[ "$PIC" =~ P_[[:digit:]]{8}_.*$] ]]; then
:
else
# get the date and time from the tag
DATE=$(exiftool -p '$DateTimeOriginal' "$PIC" | sed 's/[: ]//g')
echo "file_$PIC"
# customize date, in this case eliminate the time, getting only the date in 8 numbers and adding _
DATEMOD2=$(echo $DATE | sed -e 's/^\(.\{8\}\).*/\1_/')
echo "datemod2_$DATEMOD2"
# check if DateTimeOriginal was present
if [[ "$PIC" == "$DATEMOD2$PIC" ]];then
# as DateTimeOriginal is not present try with HistoryWhen
DATE=$(exiftool -p '$HistoryWhen' "$PIC" | sed 's/[: ]//g')
DATEMOD2B=$(echo $DATE | sed -e 's/^\(.\{8\}\).*/\1_/')
echo "datemod2B_$DATEMOD2B"
# check if HistoryWhen is present
if [[ "$PIC" == "$DATEMOD2B$PIC" ]];then
# nor the tag DateTimeOriginal, nor HistoryWhen present
echo "skip"
else
# this will be done
echo "mv -i "$PIC" $(dirname "$PIC")/"$DATEMOD2B""$PIC""
#uncomment if you like it
#mv -i "$PIC" $(dirname "$PIC")/"$DATEMOD2B""$PIC"
fi
else
# this will be done
echo "mv -i "$PIC" $(dirname "$PIC")/"$DATEMOD2""$PIC""
#uncomment if you like it
#mv -i "$PIC" $(dirname "$PIC")/"$DATEMOD2""$PIC"
fi
fi
fi
done
編集。この変更では、タグ内の日付が名前と日付属性にタッチで渡されます。また、これらのタグが存在しない場合は、変更タグの日付がファイルの名前に渡されます。
#! /bin/bash
shopt -s globstar || exit
for PIC in **
do
# look only for jpg
if [[ "$PIC" =~ \.JPG$ ]] || [[ "$PIC" =~ \.jpg$ ]]; then
echo "file_$PIC"
# get the date and time from the tag DateTimeOriginal
DATE=$(exiftool -p '$DateTimeOriginal' "$PIC" | sed 's/[: ]//g')
LONGDATE=$(echo $DATE | sed -e 's/^\(.\{12\}\).*/\1/')
# check if DateTimeOriginal is 0000... OR empty
if [[ "$LONGDATE" != "000000000000" ]] && [[ -n "$LONGDATE" ]]; then
echo "datetimeoriginal_$LONGDATE"
# modify the attribute date with the info in the tag date
touch -t $LONGDATE "$PIC"
# customize date, in this case eliminate the time, getting only the date in 8 numbers and adding _
DATEMOD2=$(echo $DATE | sed -e 's/^\(.\{8\}\).*/\1_/')
echo "datemod2_$DATEMOD2"
# skip renaming if
# 8 numbers at beginning followed by _ or after IMG_ or P_ and followed by _ (already date stamped)
if [[ "$PIC" =~ [[:digit:]]{8}_.*$ ]] || [[ "$PIC" =~ IMG_[[:digit:]]{8}_.*$] ]] || [[ "$PIC" =~ P_[[:digit:]]{8}_.*$] ]]; then
:
else
# this will be done
filename=$(basename "$PIC")
echo "$filename"
echo "mv -i \""$PIC"\" \""$(dirname "$PIC")"/"$DATEMOD2""$filename"\""
#uncomment if you like it
mv -i "$PIC" "$(dirname "$PIC")/$DATEMOD2$filename"
fi
else
# get the date and time from the tag HistoryWhen
DATE=$(exiftool -p '$HistoryWhen' "$PIC" | sed 's/[: ]//g')
LONGDATE=$(echo $DATE | sed -e 's/^\(.\{12\}\).*/\1/')
# check if Historywhen is 0000... or empty
if [[ "$LONGDATE" != "000000000000" ]] && [[ -n "$LONGDATE" ]]; then
echo "historywhentag_$LONGDATE"
touch -t $LONGDATE "$PIC"
DATEMOD2B=$(echo $DATE | sed -e 's/^\(.\{8\}\).*/\1_/')
echo "datemod2B_$DATEMOD2B"
if [[ "$PIC" =~ [[:digit:]]{8}_.*$ ]] || [[ "$PIC" =~ IMG_[[:digit:]]{8}_.*$] ]] || [[ "$PIC" =~ P_[[:digit:]]{8}_.*$] ]]; then
:
else
# this will be done
filename=$(basename "$PIC")
echo "$filename"
echo "mv -i \""$PIC"\" \""$(dirname "$PIC")"/"$DATEMOD2B""$filename"\""
#uncomment if you like it
mv -i "$PIC" "$(dirname "$PIC")/$DATEMOD2B$filename"
fi
else
# get the date and time from the tag tag filemodifydate
DATE=$(exiftool -p '$filemodifydate' "$PIC" | sed 's/[: ]//g')
LONGDATE=$(echo $DATE | sed -e 's/^\(.\{12\}\).*/\1/')
# check if filemodifydate is 0000... or empty
if [[ "$LONGDATE" != "000000000000" ]] && [[ -n "$LONGDATE" ]]; then
#echo "filemodifydatetag_$LONGDATE"
#touch -t $LONGDATE "$PIC"
DATEMOD2C=$(echo $DATE | sed -e 's/^\(.\{8\}\).*/\1_/')
echo "datemod2C_$DATEMOD2C"
if [[ "$PIC" =~ [[:digit:]]{8}_.*$ ]] || [[ "$PIC" =~ IMG_[[:digit:]]{8}_.*$] ]] || [[ "$PIC" =~ P_[[:digit:]]{8}_.*$] ]]; then
:
else
# this will be done
filename=$(basename "$PIC")
echo "$filename"
echo "mv -i \""$PIC"\" \""$(dirname "$PIC")"/"$DATEMOD2C""$filename"\""
#uncomment if you like it
mv -i "$PIC" "$(dirname "$PIC")/$DATEMOD2C$filename"
fi
else
echo "Error, NO date available"
fi
fi
fi
fi
done
フォルダの並べ替え(年と月)(YYYYMM)の場合:
exiftool "-Directory<DateTimeOriginal" -d "%Y%m" *