사진의 경우, 촬영 정보를 사용하여 파일 이름을 바꿔주는 툴이 많다.
동영상은 그런 툴이 없는듯 하다.
파일 생성일로 파일명을 바꿔준다.
--------------------------------------------------------------------------------
#! /bin/bash
verbose=true
try_count=10
ext_list=(
#extention, description
"jpg,JPEG image data"
"png,PNG image data"
"mov,ISO Media, Apple QuickTime movie"
# Add more
)
get_name()
{
stat "$1" |
sed -n '/Birth:/{s/^\s*Birth:\s*//;s/\(.\{22\}\).*/\1/;s/:/-/g;s/[ .]/_/g;p}'
}
find_next_name()
{
for i in `seq 1 $try_count`; do
[ -f "$1_$i.$2" ] || {
echo "${1}_$i"
return
}
done
}
find_ext()
{
local EXT="${1##*.}"
[ -z "$EXT" ] && {
for i in "${ext_list[@]}"; do
desc="${i#*,}"
file $1 | grep -qw "$desc" && {
EXT="${i%%,*}"; break
}
done
}
echo "$EXT"
}
ls -1 |
while read f; do
[ -f "$f" ] || continue
name=$(get_name "$f")
ext=$(find_ext "$f")
[ "$f" = "$name.$ext" ] && {
[ $verbose = true ] && echo "'$f' is already changed"
continue
}
[ -f "$name.$ext" ] && name=$(find_next_name "$name" "$ext")
if [ -z "$name" ]; then
echo "$f: too many files with same name. Use larger try_count"
else
[ $verbose = true ] && echo "mv '$f' '$name.$ext'"
mv "$f" "$name.$ext"
fi
done
--------------------------------------------------------------------------------