2014-09-30 4 views
0

Я пытаюсь получить последнее изменение файла (datetime - как unixtimestamp) из структуры папок. Есть много файлов, но мне нужно только время последнего обновления.Получить последнюю измененную дату файла в структуре папки

I'ved попытался следующие, но я думаю, что я далеко знака:

stat --printf="%y %n\n" $(ls -tr $(find * -type f)) 

ответ

1

Попробуйте это:

ls -trF | grep -v '\/\|@' | tail -1 | xargs -i date +%s -r {} 

ls -trF дает символы, чтобы отфильтровать, '/' для каталогов и '@' для ссылок. После этого выгрузите эти файлы, выберите последний и передайте его команде date.

EDIT: примечание также является опцией date -r, в которой будет отображаться последняя измененная дата файла, указанная в качестве аргумента.

1

что-то вроде этого?

ls -ltr | tail -n1 | awk '{print "date -d\"" $6FS$7FS$8 "\" +%s"}' | sh

EDIT:

на самом деле еще лучше, попробуйте следующее

find -type f -exec ls -l --time-style +%s {} \+ | sort -n -k6 | tail -n1

это итерацию по структуре папок вы желаемому, распечатайте время как метку времени Unix и сортировки это так, что самое новое в конце. (Отсюда tail -n1)

Смежные вопросы