我有一个非常具体且奇怪的问题需要解决。我是一名研究助理,我已经制作了大量的数据。在一个目录中,我转储 .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