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