Вычисление общего размера всех файлов с определенной даты до текущей даты с помощью команды поиска - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть папка с несколькими подпапками. Необходимо рассчитать общий размер всех файлов с определенной даты до текущей даты с помощью команды поиска. Я попробовал с приведенными ниже командами. Не работает.

find . -type -f -newerat 2020-01-05 ! -newerat 2020-02-10 

С уважением

1 Ответ

0 голосов
/ 10 февраля 2020

Команда, которую вы написали - это почти все, что нам нужно.

Мы начнем с перечисления всех файлов, размер которых мы хотим подсчитать.

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11

./c/1
./a/1
./a/3
./a/2
./b/1
./b/2

Это дает нам список все файлы, которые мы хотим рассмотреть. Теперь нам нужно получить размер каждого файла. Как сказал @XrXca в комментариях, мы можем использовать опцию find printf, чтобы получить размер каждого файла в байтах.

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11 -printf="%s\\n" 
4
4
4
4
4
4

Это дает нам хороший список размеров файлов.

Теперь нам просто нужно их подвести. Для этого мы можем использовать немного awk:

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11 -printf="%s\\n" | awk '{s+=$1} END {print s}'

24

, и это совокупный размер отфильтрованных файлов в байтах.

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