Я работаю на сервере Red Hat. Команды ls -l
или ll
давая мне дату и время в формате +"%b %-d %H:%M"
.
Я хочу перечислить файлы таким образом, чтобы год, когда был создан каждый файл, отображался в пределах даты.
Как это возможно?
linux
shell-script
date
Waël
источник
источник
ls -lT
для Mac OSXls
обычно не имеет способа его отображения. Так что, в общем, это невозможно.Ответы:
Вы можете использовать
man ls
и здесь вы можете найти--time-style
параметр. Или вы можете использовать:ls --full-time
,источник
ls -l --time-style=+%F
ll
настроен какls -la
или что-то еще,ll --full-time
тоже работают.ls -l
будет отображаться месяц и год - с тех пор , согласно справочной странице BSD: если время изменения файла превышает 6 месяцев в прошлом или будущем, то вместо полей часа и минуты отображается год последней модификации. ,Итак, чтобы убедиться, что год будет отображаться всегда, используйте:
ls --time-style=long-iso
(GNU / Linux)ls -lT
отобразит полную информацию о времени в BSD (MacOS)источник
Поскольку вы спросили год,
ls -lac
его легко запомнить, если, как и я, вы используетеls -la
все время. Этоc
дает вам ctime, которое будет отображать год, если это не текущий год, или часы и минуты, если это так.источник
ls
на сегодняшний день изменился , а не по умолчанию даты изменений .ls -l
отображает дату и время для дат за последние шесть месяцев, а также дату и год для других дат. ctime может составлять в последние шесть месяцев столько же, сколько mtime (дата изменения), поэтомуls -lac
может отображать время (а не годы) столько, сколькоls -la
может. Кроме того, как указывает Матин Улхак,ls -lac
не отображаются те же даты, чтоls -la
и у. Этот ответ неверен.В дополнение к ответу Яна Марека ... Я заметил, что вы можете сойти с рук просто:
который будет делать то же самое,
ls --full-time
что он описал. Спасибо Стефану Шазеласу. Теперь я печатаюls --fu
везде. :)источник
ls --fu
. Длинные опции в стиле GNU могут быть сокращены, если нет двусмысленности (--f
не сработает, так как есть также --file-type и --format). Обратите внимание, что в будущей версии может появиться версия, на--full-perms
которую опасно полагаться.Если вы используете
busybox
(встроенные дистрибутивы, например, OpenWRT, LEDE), вам нужен переключатель-e
для версий до 1.26.2 и--full-time
1.27.0 и выше (см. Коммит, который его изменил ).источник
-e
также работает с Solarisls
и ast-open, поэтому он ближе к стандарту, чем GNU--full-time
. Позор, что busybox удалил его в более новых версиях.может любимый:
источник
-T
опция не будет работать с GNUls
(также не указана в POSIX). Кроме того, при предоставлении кода в качестве ответа лучше объяснить, что делает каждая его часть.