Формат даты в UNIX

Как мне показать дату в формате ГГГГ-ММ-ДДЧЧ: ММ: СС + ZZZZ в LINUX? Мне нужно написать дату создания файла скажем file1 в другом файле скажем file2 в заданном формате. Помоги мне достичь этого.

5
задан 8 October 2013 в 09:17

4 ответа

Вы можете отобразить дату таким образом с помощью этой команды:

$ date +%Y-%m-%dT%H:%M:%S%z
2013-10-08T07:38:45+0200

Многие файловые системы не хранят дату создания файла, поэтому не всегда есть способ получить ее. Если файл никогда не изменялся с момента его создания, это сработало бы:

$ date -r file1 +%Y-%m-%dT%H:%M:%S%z > file2
$ cat file2
2013-10-08T07:32:52+0200
0
ответ дан 8 October 2013 в 09:17

Формат даты, на который вы ссылаетесь - это ISO 8601. Используйте опцию -I команды date для форматирования дат в соответствии с этим форматом (s задает точность с точностью до целых секунд):

[ 110]

Чтобы получить время последнего изменения файла (в секундах с начала эпохи), используйте спецификатор формата %Y с командой stat:

$ stat -c %Y file1
1378818806

Объединяя эти два, используйте date -d отформатировать вывод stat -c:

$ date -Is -d @`stat -c %Y file1`
2013-09-10T16:13:26+0300

Итак, это утверждение, которое делает то, что вам нужно:

$ date -Is -d @`stat -c %Y file1` > file2
0
ответ дан 8 October 2013 в 09:17

Сочетая мои предыдущий ответ и с ответом @jlliagre , самый краткий способ сделать то, что вы хотите, это:

date -Is -r file1 > file2
0
ответ дан 8 October 2013 в 09:17

Это тебе помогает?

ls -c -l file1 --time-style="+%Y-%m-%dT%H:%M:%S%z" > file 2
0
ответ дан 8 October 2013 в 09:17

Другие вопросы по тегам:

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