Shell 脚本:从一个目录中删除或移动与另一目录中的文件名匹配的文件

Shell 脚本:从一个目录中删除或移动与另一目录中的文件名匹配的文件

我有一个非常具体且奇怪的问题需要解决。我是一名研究助理,我已经制作了大量的数据。在一个目录中,我转储 .pngs 以供随意查看(此处空间有限),在另一个目录中,我转储 .ps 和 .pdf 文件以在 Latex 中使用。这一切都是用 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

相关内容