このスクリプトの目的は、フォルダ内にファイル名が存在するかどうかを確認することです。ファイル名が存在しない場合は、ファイルを削除します。Bashスクリプトは、両方のフォルダに存在しない場合、別のフォルダ内のファイルを削除します
これは、私は2つのフォルダ、alignedImages
とtrainingImages
を持って、これまで
#!/bin/bash
echo "What's the folder name?"
read folderName
$fileLocation="/home/daniel/Dropbox/Code/Python/FR/alignedImages/$folderName"
for files in "/home/daniel/Dropbox/Code/Python/FR/trainingImages/$folderName"/*
do
fileNameWithFormatFiles=${files##*$folderName/}
fileNameFiles=${fileNameWithFormat%%.png*}
for entry in "/home/daniel/Dropbox/Code/Python/FR/alignedImages/$folderName"/*
do
fileNameWithFormat=${entry##*$folderName/}
fileName=${fileNameWithFormat%%.png*}
if [ -f "/home/daniel/Dropbox/Code/Python/FR/alignedImages/$fileNameFiles.jpg" ]
then
echo "Found File"
else
echo $files
rm -f $files
fi
done
done
read
を得たスクリプトです。
alignedImages
のすべての画像は、trainingImages
の中にありますが、その周囲にはありません。だから、trainingImages
にalignedImages
のファイルと同じ名前のファイルが含まれていない場合は、trainingImages
のファイルを削除します。
また、写真は同じではないので、md5やハッシュなどを比較することはできません。 .pngの代わりに.jpgのファイル名を除き、ファイル名は同じになります。
すばらしいこと:変数に割り当てるときは '$'を含めません。 – mooiamaduck
@mooiamaduckよく見て – BashTroubles