管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

コピー先ディレクトリに存在しないファイルのみをコピーする(shellscript)

特定の拡張子のファイルについて、コピー先ディレクトリに存在しないファイルのみをコピーするシェルスクリプト
きっともっとシンプルなやり方があるとは思うけど、変数、繰り返し、条件分岐など織り交ぜて書いてみたかったので...

#!/bin/bash

# コピー元側のパス(フルパス、末尾'/'なし)
from_path="/home/from"

# コピー先側のパス(フルパス、末尾'/'なし)
to_path="/media/to"

# 対象ファイル拡張子(先頭'.'なし)
target_file_extention="jpg"

for i in `ls ${from_path}/*.${target_file_extention}`; do
   file_name=`basename $i`
   if [ ! -e "${to_path}/${file_name}" ]; then
     echo "cp:${file_name}"
     cp ${from_path}/${file_name} ${to_path}/${file_name}
   fi;
done