次のコードは、特定のパターンに一致するすべてのファイルを検索して新しいディレクトリにコピーし、ファイルがすでに存在する場合はサフィックスを追加しようとします。これは、重複するファイル名が元のリストに表示されるためです。これらは別のディレクトリにあるためです。
区切り文字として取るファイル名を除いて、期待どおりに機能しますspaces
。for in loop
このコードは、私が使用したスタックオーバーフローのさまざまな部分からのものであり、完全には理解していません。
スペースを含むファイルのみをコピーする範囲で、ファイル名を引用するさまざまな組み合わせを試しました。
誰かがこの問題を解決する方法についてアドバイスできますか
patterns=( "wom*.gif" "StarB*.gif" "logos*.gif" )
for pattern in "${patterns[@]}"
do
for fname in $(find $source -name $pattern);
do
echo Path-and-Filename: $fname
filename=$(basename "$fname")
extension=${filename##*.}
filename=${filename%.*}
echo Just-Filename: $filename.$extension
suffix=""
count=0
while [ -f $dest$filename$suffix.$extension ]
do
count=$(($count+1))
suffix="("$count")"
done
cp -v -p "$fname" $dest"$filename"$suffix.$extension >>$dest"CopyImageFiles-"$(date +"%Y-%m-%d").log 2>>$dest"CopyImageFiles-"$(date +"%Y-%m-%d").log
done
done