Теперь я знаю, как использовать ключевое слово 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
будет работать для них. Подробнее об этой проблемездесь.