2

我有一个需要合并的大图像文件夹,并且我已经使用以下方法管理了第一步:

find ./products_raw -type f -exec cp {} products_processed  \;

但是,它们来自的文件夹结构还包括同名的缩略图,因此最终在文件夹中的大小图像取决于运气。我的逻辑是,如果我可以检查文件是否更大,那么它很可能是正确的。不知道如何实现这一点,通常的搜索并没有显示任何太清楚的东西。

干杯!

编辑:应该提到,我正在使用 OSX

4

2 回答 2

2

嗯,答案很简单。

首先,您会获得文件大小的列表:

find . -type f -printf '%s\t%f\t%p\n'

将有 3 列:大小、文件名、文件路径(带有名称)。

然后按大小对其进行排序,以便更早地制作更大的文件:

find . -type f -printf '%s\t%f\t%p\n' | sort -nr

然后,通过 awk 传递它以删除重复的文件名:

find . -type f -printf '%s\t%f\t%p\n' | \
    sort -nr | \
    awk -F'\t' '!c[$2]++ {print $3}'

最后,将文件复制到目标目录:

find . -type f -printf '%s\t%f\t%p\n' | \
    sort -nr | \
    awk -F'\t' '!c[$2]++ {print $3}' | \
    xargs -d'\n' cp -t wherever/
于 2013-06-17T15:25:34.113 回答
0

您可以使用该命令的-size测试find,例如查找所有大于 1 MB 的文件:

find ./products_raw -type f -size +1M -exec cp {} products_processed \;
于 2013-06-17T15:15:49.263 回答