如果您没有太多文件,最好的方法之一是使用ls
自己进行排序。
按名称排序并每行打印一个文件:
find $CATALOG -size +$SIZE -exec ls -1 {} +
按大小排序并每行打印一个文件:
find $CATALOG -size +$SIZE -exec ls -S1 {} +
按修改时间排序,每行打印一个文件:
find $CATALOG -size +$SIZE -exec ls -t1 {} +
您还可以使用ls
开关:使用长列表格式按修改时间排序(从小到大),并具有人类可读的大小:
find $CATALOG -size +$SIZE -exec ls -hlrt {} +
哦,您可能只想要find
文件(并忽略目录):
find $CATALOG -size +$SIZE -type f -exec ls -hlrt {} +
最后,一些评论:避免在 bash 中使用大写的变量名(这被认为是不好的做法)并避免使用反引号,$(...)
而是使用。例如,
results=$(find "$catalog" -size +$size -type f -exec ls -1rt {} +)
此外,您可能不想像上一行那样将所有结果放在一个字符串中。您可能希望将结果放入数组中。在这种情况下,mapfile
像这样使用:
mapfile -t results < <(find "$catalog" -size +$size -type f -exec ls -1rt {} +)