Как мне показать дату в формате ГГГГ-ММ-ДДЧЧ: ММ: СС + ZZZZ в LINUX? Мне нужно написать дату создания файла скажем file1 в другом файле скажем file2 в заданном формате. Помоги мне достичь этого.
Вы можете отобразить дату таким образом с помощью этой команды:
$ 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
Формат даты, на который вы ссылаетесь - это ISO 8601. Используйте опцию -I
команды date
для форматирования дат в соответствии с этим форматом (s
задает точность с точностью до целых секунд):
Чтобы получить время последнего изменения файла (в секундах с начала эпохи), используйте спецификатор формата %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
Сочетая мои предыдущий ответ и с ответом @jlliagre , самый краткий способ сделать то, что вы хотите, это:
date -Is -r file1 > file2
Это тебе помогает?
ls -c -l file1 --time-style="+%Y-%m-%dT%H:%M:%S%z" > file 2