
フォルダー A に写真があり、フォルダー B と C にも写真があります。ファイル名は同じです。フォルダー A から写真を検索して削除するにはどうすればよいでしょうか。この作業のためにソフトウェアをダウンロードしたくないので、Perl スクリプトか何かが理想的です。
答え1
次のコマンドを試してください:
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
使い方?
ステップ1:重複したファイルを移動するための一時ディレクトリを作成します。
ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"
ステップ2:destdir
重複した写真を削除するフォルダーAディレクトリを設定します。
destdir=/path/to/FolderA
ステップ3最初のソースディレクトリ(FolderB)にcdしてコマンドを実行します。
cd /path/to/FolderB
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
ステップ4:次に、次のソースディレクトリ(FolderC)にcdして、コマンドを再度実行します。
cd /path/to/FolderC
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
わかりました。コマンドをテストして結果を確認したら、echo
重複した写真を/tmp/ToDelete
ディレクトリに移動するコマンドを削除します。
以下のテストをご覧ください:
$ ls ~/FolderA
1.jpg 2.jpg 6.jpg 7.jpg 8.jpg
$ ls ~/FolderB
3.jpg 4.jpg 5.jpg 7.jpg 8.jpg 9.jpg
$ ls ~/FolderC
6.jpg 7.jpg 8.jpg 9.jpg
$ ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"
$ ls /tmp/ToDelete/
$ destdir=~/FolderA
$ cd ~/FolderB
/FolderB$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
‘/home/Fischer/FolderA/./8.jpg’ -> ‘/tmp/ToDelete/8.jpg’
removed ‘/home/Fischer/FolderA/./8.jpg’
‘/home/Fischer/FolderA/./7.jpg’ -> ‘/tmp/ToDelete/7.jpg’
removed ‘/home/Fischer/FolderA/./7.jpg’
/FolderB$ cd ~/FolderC
/FolderC$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
‘/home/Fischer/FolderA/./6.jpg’ -> ‘/tmp/ToDelete/6.jpg’
removed ‘/home/Fischer/FolderA/./6.jpg’
/FolderC$ ls /tmp/ToDelete/
6.jpg 7.jpg 8.jpg
/FolderC$ ls -l ~/FolderA
1.jpg 2.jpg
/FolderC$ C00L ;)
そしてそれはどのように機能するのでしょうか?
FolderBまたはFolderCに切り替えて実行するとコマンドの検索、つまり、その中のファイルを探すことになります(.
現在のディレクトリを参照)。そして、cmp コマンド(2つのファイルをバイトごとに比較するために使用) {}
FolderB/FolderCの各ファイル( )をdestdir
(FolderA( ))のファイルと比較します。同じ場合は、そのファイルを(FolderAから の一時ディレクトリに)次のよう$destdir/{}
に移動します。/tmp/ToDelete
mv コマンド -exec mv "$destdir/{}" "$ToDelete"/ \;
。
答え2
プログラム画像重複を見つける要求どおりに動作するはずです:
視覚的に類似した画像や重複した画像を検索します
このプログラムはシンプルな Perl プログラムであり、コマンド ラインから起動できますが、ソフトウェア パッケージとしても利用できます。
答え3
fslintプログラムを使うこともできます
重複を検索します(他の機能も含む)
fslint はソフトウェア センターからダウンロードできます。fslint には、プログラムを開くとユーザー インターフェイスがあり、最初のタブは重複ファイルを見つけることに関するものです。フォルダーを指定できます。
詳しくは :ユーザーマニュアル fslint
答え4
沢山あります重複写真ファインダーオンラインで利用可能なユーティリティ。中には他のユーティリティよりも優れたもの、より高速なもの、使いやすいものがあり、多くは無料ですが、完全な機能を利用するには料金を支払う必要があるものもあります。
重複写真を見つけるための最適なフレーズで Google 検索を実行し、利用可能なものを調べて、ニーズに合ったものを見つけます。