Каким должно быть имя файла для файлов с именем даты, чтобы оно упорядочивалось по - PullRequest
1 голос
/ 05 марта 2012

Я создаю приложение, которое ежедневно записывает файлы журналов, и я хотел бы знать , каким должно быть имя файла на каждый день, поэтому, если все файлы, расположенные в одной папке, будут упорядочены в порядок записи (от самого нового до самого старого)?

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Вы можете вычесть из даты в будущем, от 2033, например:

echo $((2000*1000*1000 - $(date +%s)))
669025348

Умножение гораздо лучше читаемо, чем 2000000000. Текущая дата в с:

date +%s
1330974665

так что это будет стабильный метод в течение 20 лет.

Лучше читаемый способ - отрицать каждую часть числовой даты:

echo > $(date +-%Y.-%m.-%d.-%H.-%M.-%S)

ls
-2012.-03.-05.-20.-46.-07  -2012.-03.-05.-20.-46.-16  -2012.-03.-05.-20.-46.-24
ls | sort -n 
-2012.-03.-05.-20.-46.-07
-2012.-03.-05.-20.-46.-16
-2012.-03.-05.-20.-46.-24

Это выглядит странно, с ним не приятно обращаться, так как вам придется использовать

rm -- * 

чтобы удалить все эти файлы, потому что

rm * 

приведет к неправильной интерпретации знака -. Но вы можете обнаружить реальную дату.

0 голосов
/ 05 марта 2012

Я бы порекомендовал использовать следующий формат: "yyyy-MM-dd_hh_mm_ss" и отсортировать файлы в папке по имени по убыванию.

...