Найдите самый большой файл с критериями и скопируйте его в определенный каталог - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть каталог /usr/process со многими подкаталогами.Я хочу найти самый большой файл с именем *calculation*.Для поиска могут быть миллионы файлов.

Когда я использую приведенную ниже команду, сортирую по размеру, получаю самый большой файл и копирую его в /, это очень медленно.

find /usr/process -name '*calculation*' | xargs -n 1 -i cp {} /usr/share/backup
  1. Как отфильтровать команду поиска, чтобы получить самый большой файл и скопировать его?
  2. Как отфильтровать команду поиска, чтобы получить 10 самый большой файл и скопировать его?
  3. Как я могу отфильтровать команду find, чтобы получить самый маленький файл и скопировать его?
  4. Как я могу отфильтровать команду find, чтобы получить 10 самый маленький файл и скопировать его?

1 Ответ

0 голосов
/ 05 декабря 2018

Если вы знаете имя файла («расчет»), я не вижу интереса для запуска 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

Затем вы можете передать его в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...