linux - 查找具有条件的最大文件并将其复制到特定目录
问题描述
我有/usr/process
许多子目录的目录。我想找到最大的文件名为*calculation*
. 可能有数百万个文件可供搜索。
当我使用下面的命令并根据大小进行排序并获取最大的文件并将其复制到/
它时,速度非常慢。
find /usr/process -name '*calculation*' | xargs -n 1 -i cp {} /usr/share/backup
- 如何过滤 find 命令以获取最大的文件并复制它?
- 如何过滤 find 命令以获取 10 个最大的文件并复制它?
- 如何过滤 find 命令以获取最小的文件并复制它?
- 如何过滤 find 命令以获取 10 个最小的文件并复制它?
解决方案
如果您知道文件名(“计算”),我认为没有兴趣运行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
然后,您可以根据需要对其进行管道传输。
推荐阅读
- laravel - Vue.js 组件模板类型
- javascript - 同一个 html 页面中的多个 Three.js 画布
- git - 无法在 Mac 中查看 .gitignore 文件
- python - 按模型创建记录
- java - gradle:没有定义存储库
- android - AudioManager setStreamVolume 没有标志
- javascript - 在跨域ajax帖子的回调函数中未定义
- c# - 如何将 DataGrid 绑定到设计结构矩阵 (DSM)
- amazon-web-services - AWS IoT DynamoDB 创建规则
- r - r - 创建后代的可能结果基因型