Linux: как отобразить файл в пределах одной даты

так что в Linux, если я сделаю это ls -alth, тогда будут отображаться все файлы внутри папок с датой последних изменений. Я хочу отображать файлы, которые в последний раз изменялись в определенную дату. Как мне этого добиться. Так что я пробую это

ls -alth | cut -f7 -d " " | grep 2011-07-02

поэтому отобразите все -> затем передайте парсеру -> затем передайте результат в поле 7, которое является датой, в grep, чтобы отфильтровать до даты, которую я хочу. Ну результат и все

2011-07-02
2011-07-02
2011-07-02
...

Я хочу видеть имя файла.


person Thang Pham    schedule 02.07.2011    source источник
comment
@AljoshaBre: чувак, я такой идиот. Можете ли вы превратить это в ответ, чтобы я мог его принять. тывм :D   -  person Thang Pham    schedule 02.07.2011


Ответы (5)


(В настоящее время я сижу на машине с Windows, поэтому синтаксис команды просто по памяти)

Вы можете использовать find для этого:

find /your/dir -maxdepth 1 -mtime 2011-07-02 -print0 | xargs -0 ls -lath
person hlovdal    schedule 02.07.2011

советую использовать

find -ctime 2

если вы хотите найти файлы, которые были изменены за последние 2 дня или

find -cnewer test

Если вас просто интересуют файлы, у которых более ранняя дата модификации, чем у файла «test».

person whoplisp    schedule 02.07.2011

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

person ShinTakezou    schedule 02.07.2011

Вы хотите выполнить grep, а затем вырезать, хотя я бы использовал nawk:

ls -alth | nawk '{for (i=8; i<=NF;i++) printf("%s ",$i); printf("\n")}'
person Chris Gregg    schedule 02.07.2011

это ответ

ls -alth | grep 2011-07-02
person Thang Pham    schedule 05.07.2011