Как считать количество строк в файлах, которые создали сегодня

Ну, я пытаюсь перечислить количество файлов, созданных сегодня и количество количество строк в тех файлах. Я должен сделать это в Unix. Предложите, как записать сценарий для этого.

1
задан Dheeraj kumar 7 May 2010 в 14:44
поделиться

5 ответов

Чтобы найти количество строк:

find / -type f -ctime 0 -mtime 0 -print0 | xargs -0 wc -l

Это почти то, что вам нужно. В Unix нет времени создания файла, это приблизительное значение со временем изменения статуса файла и временем изменения файла.

Если вы хотите искать только в определенном каталоге, замените / на / путь / к / ваш / каталог .

Чтобы узнать количество файлов:

find / -type f -ctime 0 -mtime 0 | туалет -l

2
ответ дан 3 September 2019 в 00:44
поделиться
find . -maxdepth 1 -daystart -ctime 0 -type f | xargs wc -l

Вам нужно будет изменить значение аргумента maxdepth , если вам нужно посмотреть глубже.

0
ответ дан 3 September 2019 в 00:44
поделиться

Это найдет файлы ( -тип f ) в / path , измененные за последние 24 часа ( -mtime -1 означает измененные за последние 1 день) и запустите wc -l , чтобы подсчитать количество строк. {} - это заполнитель для имен файлов, а + означает передачу всех имен файлов за один вызов wc .

find /path -mtime -1 -type f -exec wc -l {} +

Обратите внимание, что -ctime , как предлагается в других ответах, - это время изменения, а не время создания. Это последний раз, когда менялись владелец файла, группа, количество ссылок, режим и т. Д. Unix не отслеживает время создания файла.

0
ответ дан 3 September 2019 в 00:44
поделиться

Трудно определить, когда файл был надежно создан. Mtime - это время, когда он был изменен, ctime - это время, когда данные inode были изменены (например, изменение разрешений), atime - это время последнего доступа к данным файла. Обычно mtime заменяет время create; когда файл создается, он записывает время создания (как и ctime и atime), но если файл впоследствии изменяется, mtime записывает время последнего изменения содержимого файла.

find . -mtime -1 -print0 | xargs -0 wc -l

Найдите все файлы в текущем каталоге со временем модификации менее 24 часов и отправьте имена в 'wc -l', допуская пробелы и другие нечетные символы в именах файлов.

0
ответ дан 3 September 2019 в 00:44
поделиться

Чтобы подсчитать количество файлов, измененных сегодня:

find . -daystart -type f -ctime -1 | wc -l

find находит все файлы ( -тип f ) в текущем каталоге (. ) создан * ( -ctime ) совсем недавно ( - ), чем через один ( 1 ) день с начала этого дня ( - daystart ). wc подсчитывает количество строк ( -l ) в выводе find .

Чтобы подсчитать строки в этих файлах:

find -daystart -type f -ctime -1 -print0 | wc -l --files0-from=-

Первая часть такая же, за исключением того, что find разделяет имена файлов с помощью нулей ( -print0 ). wc подсчитывает строки ( -l ) в файлах с нулевым разделением ( - files0-from = ) на своем стандартном входе ( - ).

* ctime на самом деле не время создания, а время последнего изменения статуса файла. Я не думаю, что файловая система придерживается фактического времени создания.

0
ответ дан 3 September 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: