ディレクトリ内の重複ファイルを見つけて1つだけ減算し、すべて削除してスペースを確保したいと思います。シェルスクリプトを使用してこれを達成するにはどうすればよいですか?
たとえば、
pwd
folder
内部ファイルは次のとおりです。
log.bkp
log
extract.bkp
extract
log.bkpを他のすべてのファイルと比較し、内容に応じて重複したファイルが見つかった場合は削除する必要があります。同様に、「log」ファイルはそれに続く他のすべてのファイルと一緒にスキャンする必要があります。
これまでこれを書いてきましたが、期待した結果は得られませんでした。
#!/usr/bin/env ksh
count=`ls -ltrh /folder | grep '^-'|wc -l`
for i in `/folder/*`
do
for (( j=i+1; j<=count; j++ ))
do
echo "Current two files are $i and $j"
sdiff -s $i $j
if [ `echo $?` -eq 0 ]
then
echo "Contents of $i and $j are same"
fi
done
done
ベストアンサー1
シェルスクリプトを生成せずに単にコマンドラインツールを使用したい場合は、ほとんどfdupes
のディストリビューションでこれを実行できるプログラムがあります。
fslint
同じ機能を持つGUIベースのツールもあります。