查找具有条件的最大文件并将其复制到特定目录

时间:2018-12-05 03:58:31

标签: linux shell find

我的目录/usr/process包含许多子目录。我想找到最大的文件名为*calculation*。可能有数百万个文件可供搜索。

当我使用下面的命令并根据大小排序并获取最大的文件并将其复制到/时,这非常慢。

find /usr/process -name '*calculation*' | xargs -n 1 -i cp {} /usr/share/backup
  1. 如何过滤find命令以获取最大文件并将其复制?
  2. 如何过滤find命令以获取最大的10个文件并将其复制?
  3. 如何过滤find命令以获取最小的文件并将其复制?
  4. 如何过滤find命令以获取最小的10个文件并将其复制?

1 个答案:

答案 0 :(得分:0)

如果您知道文件名(“计算”),则对运行find毫无兴趣。

如果需要查找n个最大文件(此处n = 3),则可以使用du,它代表“磁盘使用情况”:

du -a /usr/bin/ 2>/dev/null | sort -n -r | head -n 3
478328  /usr/bin/
26024   /usr/bin/burpsuite
16692   /usr/bin/mariabackup

当然,您需要使用自己的目录/usr/process

或者,因为这样更容易传递它,所以可以如下使用find

find $HOME -type f -printf '%s %p\n' | sort -nr | head -10
10485760 /root/.mozilla/firefox/p4r990u7.default/places.sqlite
10240000 /root/.cache/tracker/meta.db-wal
7964784 /root/.mozilla/firefox/p4r990u7.default/gmp-widevinecdm/1.4.8.903/libwidevinecdm.so
6136581 /root/.local/share/tracker/data/tracker-store.journal
6127616 /root/.mozilla/firefox/p4r990u7.default/webappsstore.sqlite
5615597 /root/.mozilla/firefox/p4r990u7.default/storage/temporary/https+++regex101.com/asmjs/module15
4728570 /root/.cache/mozilla/firefox/p4r990u7.default/safebrowsing/goog-phish-shavar.sbstore
4493312 /root/.cache/tracker/meta.db

然后,您可以根据需要将其传输。