シェルスクリプト:他のディレクトリのファイル名と一致する限り、ディレクトリ内のファイルを削除または移動します。

シェルスクリプト:他のディレクトリのファイル名と一致する限り、ディレクトリ内のファイルを削除または移動します。

解決すべき非常に具体的で奇妙な問題があります。私は研究アシスタントで多くのデータを生産してきました。あるディレクトリには通常のビュー用に.pngをダンプし(ここではスペースが限られています)、別のディレクトリにLatexで使用するために.psファイルと.pdfファイルをダンプしました。これはすべてmatlabを使用して自動的に行われます。 .pngフォルダから無駄だと思われるファイルを定期的にたくさん削除しました。

Unixに.psディレクトリを繰り返し、各ファイルに対して.pngディレクトリで一致するファイル名を検索し、一致しない場合は、後でファイルを別のディレクトリ(最も頻繁に実行する)に移動するように指示する方法は?削除)?

ここで役に立つコマンドはありますか?

答え1

これを行うためのおおよその方法は次のとおりです。

for f in /path/to/PDFs/*.pdf; do
    base=$( basename "$f" .pdf )
    if [ ! -f /path/to/PNGs/"$base".png ]; then
        mv "$f" /path/to/garbage/
    fi  
done

関連情報