Как получить информацию о времени файлов после команды find | grep keyword?

Как получить информацию о времени файлов после команды find | grep keyword?

Теперь я знаю, как использовать ключевое слово find | grep, чтобы получить нужный мне файл.

Но как после этого узнать размер и время создания каждого найденного мной файла?

Например, после урока find | grep у меня получилось следующее:

./lab/zengjuchen/tutorial
./lab/zengjuchen/tutorial/tutorial

Как мне оценить время их создания и размер?

решение1

Вы начали неправильно, используя findи grepвместе. findпрекрасно подходит для фильтрации файлов. Вам grepэто не нужно — на самом деле, перетасовка имен файлов таким образом не рекомендуется.

Вместо этого сделайте следующее:

find -name '*tutorial*' -exec <some-command> {} \;

Здесь <some-command>будет запущен для каждого найденного файла, имя которого заменит {}. Например, чтобы получить размер файла:

find -name '*tutorial*' -exec du {} \;

Использование \+вместо \;заставит findвыполнить команду для всех файлов сразу, если данная команда поддерживает передачу более одного аргумента файла. Это ускорит процесс.


Или вы можете просто сделать это с помощью Bash:

shopt -s globstar
du **/*tutorial*

Здесь **рекурсивно обходит все каталоги.


Что касается времени создания: Традиционно это не сохраняется. Вы получите только время последнего доступа, изменения и изменения статуса. Подробнее оstat. Файловые системы, такие как ext4хранят время создания как "Время рождения". Так что, stat -c %wбудет работать для них. Подробнее об этой проблемездесь.

Связанный контент