рассчитать в ТБ общее используемое дисковое пространство файлами новее X дней с помощью поиска

У меня есть папка с тысячами больших файлов, и я хотел бы найти общее используемое дисковое пространство, созданное за последние X дней.

Я пробовал эту команду:

find . -type f -mtime -30 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'

Как упоминалось здесь @k-h
рассчитать общее используемое дисковое пространство файлами старше 180 дней с помощью find

Вывод команды — 9.84347e+09, и я не знаю, как изменить вывод на размер диска в ТБ.

Пожалуйста, сообщите.
Спасибо,
Ярон


person yarone    schedule 08.06.2020    source источник
comment
Это может помочь: unix.stackexchange.com/questions/44040/   -  person Sundeep    schedule 08.06.2020
comment
Вас интересует размер файла или место на диске... это две разные вещи.   -  person kvantour    schedule 08.06.2020
comment
Привет и добро пожаловать в Stack Overflow. Вы хотите, чтобы ваши результаты были напечатаны в ТБ, и у вас есть команда, которая печатает результаты в килобайтах (%s возвращает байты (см. man find) ) ... Так что мне кажется, что это простая задача. Я очень убежден, что ты справишься с этим.   -  person kvantour    schedule 08.06.2020
comment
плохо попробую @kvantour, спасибо!   -  person yarone    schedule 10.06.2020


Ответы (1)


Ну, не совсем та же логика, но я здесь, чтобы объяснить:

{ echo -n \(; find -type f -mtime -30 -printf "%s+"; echo 0\)/1024/1024/1024/1024; } | bc

Давайте разберем это:

  • echo -n \( - печатает ( без разрыва строки.
  • find … — та же старая команда, которую вы использовали со знаком + для расчета.
  • echo 0\)/1024… - мы печатаем 0, чтобы выражение не заканчивалось знаком +, печатаем закрывающие круглые скобки, а затем делим на 1024 четыре раза, чтобы получить соответствующий результат.
  • | bc — это инструмент расчета, вы можете просто передать формулу этому инструменту, попробуйте запустить echo 1+2 | bc и поэкспериментировать с ним, чтобы понять его концепцию.

Получайте удовольствие и классное имя BTW :)

person Yaron    schedule 08.06.2020
comment
Спасибо @yaron - person yarone; 10.06.2020