Ввод каталогов / файлов в текстовый файл с последующим отображением файлов старше определенной даты - PullRequest
0 голосов
/ 05 октября 2018

Я использую "ls -alR" для ввода каталогов и файлов в этих каталогах в другой текстовый файл.

ls -alR > testalR.txt

текстовый файл создается так:

./test-file_folders/test_folder_1:
total 400
drwx------ 5 "user" "group" "size" May 2 10:30 test_file_1
....     file info    ... more file info   ....test_file_2
...more files 


./test-file_folders/test_folder_2:
total 400
drwx------ 5 "user" "group" "size" Oct 2 11:35 test_file_1
....     file info    ... more file info   ....test_file_2
...more files 

Я пытаюсь показать файлы, к которым не было доступа со 2 октября 2018 года. Я пробовал:

`sed -n '/Oct 2 00:00/,/Oct/ 2 23:59/p' /testalR.txt

.. но это не дает результатов.Есть ли лучший способ отобразить это или даже возможно?

Извините, следовало бы добавить это для начала.Я знаю, что использование варианта find -atime было бы лучшим вариантом.Но мы используем систему и процесс, которые сбиваются командой find.Я пытаюсь найти альтернативы, чтобы избежать использования «поиска», и мне не пришлось бы обращаться к каталогам напрямую каждый раз, когда я хотел запустить поиск.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

попробуйте найти:

find /folder -atime +30 

где +30 = дни

другие параметры: человек найти

0 голосов
/ 05 октября 2018

Анализ выходных данных ls - скользкий уклон.

Использование find:

find . -type f -atime +3 -print

find . -type f -atime +3 -exec ls -uld {} +

Использование -print просто возвращает список имен файлов.Использование -exec ls -ld {} + приводит к запуску ls для каждого возвращаемого файла, давая вам необходимую информацию.

Аргумент.до atime (или mtime или ctime) с 24-часовыми шагами.Аргумент может быть положительным или отрицательным (или нулевым).Использование -atime +3 позволяет найти файлы, к которым обращались по крайней мере ЧЕТЫРЕ дня назад.

Использование -exec ... {} + приводит к выполнению команды в "..." для каждого возвращаемого объекта, связывая столько объектов (файлов)) как можно одновременно.Это гораздо эффективнее, чем разветвление процесса для каждого возвращаемого файла, например:

... -exec ls -uld {} \;

Один из способов ограничить результаты вашей конкретной датой - создать две контрольные точки (файлы), например:

touch -amt 201809302359 f1
touch -amt 201810012359 f2
find . -type f \( -anewer f1 -a ! -anewer f2 \) -exec ls -uld -exec {} +
...