Ответы:
Почему бы не использовать stat
вместо ls
?
stat -c "%y %s %n" *
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
, вы можете добавить информацию о ширине в строку формата, например "%y %8s %n"
, функцию C printf, например , она не документирована, но, кажется, работает (coreutils 8.17, Fedora 18)
ls
я могу вывести его с тысячным разделителем символов. Как это работает stat
?
ls
. Как насчет цветов?
Вы можете получить большой контроль над списком файлов с помощью find
утилиты. ls
на самом деле не позволяет вам указать столбцы, которые вы хотите.
Например:
$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601 4096 .
20111007.0601 2 b
20111001.1322 4096 a
Аргумент к printf
действию подробно описан на странице руководства. Вы можете выбрать другую информацию о времени, какой размер вы хотите (размер файла или используемые дисковые блоки) и т. Д. Вы также можете сделать это безопасным для необычных имен файлов, если требуется дальнейшая обработка.
%C+
(вывод «2016-08-29 + 10: 57: 56.9201257840») и %Cc
(вывод «Mo 29 Aug 2016 10:57:56 CEST»)
Вы всегда можете использовать другую утилиту, например, awk
для форматирования вывода ls
1 :
/bin/ls -ls | awk '{print $7,$8,$9}'
1. Да, как правило, вы не должны анализировать вывод ls, но в этом случае вопрос специально требует его ...
ls
псевдоним (скажем alias ls='ls -i'
). Вы действительно должны быть очень осторожны, если хотите разобрать вывод ls.
ls
, но это то, чего хотел ОП ...
/bin/ls
позволит избежать проблемы псевдонимов.)
ls
которым мы оба согласны, не будет удовлетворять требованию пробела. /bin/ls
Предложение является хорошим один.
-h
чтобы сделать его читаемым человеком. Конкретно я использовал: ls -lah | awk '{print $5,$6,$7,$8}'
что дает: 4.0K Jan 24 18:17
. Конечно, оригинальное решение ничего не говорит о awk, но в linux мы должны предполагать, что вывод процесса всегда будет входом для другого процесса, верно? ;)
Вы также можете использовать команду «дата». Он очень прост в использовании:
date -r [имя файла]
date -r foo*.txt
->date: extra operand "foo2.txt"
где пробел определен как разделитель, а f6 означает поле 6
ls -lt | cut -d" " -f6-
Вы можете передать две команды
ls -l|cut -d" " -f5
ls
это здорово, потому что он имеет очень быструю сортировку по дате и времени, но с форматированием трудно справиться. Я предлагаю использовать токен в стиле -time, например,--time-style='+&%Y%m%d+%H%M%S.%N'
где токен - «&», используя его в качестве ссылки, чтобы вы могли дополнительно проанализировать вывод,sed
чтобы вы могли также вернуться назад, как раз перед тем, как токен станет размером! Если кто-то захочет опубликовать это как полный ответ, не стесняйтесь, я сейчас слишком сплю :)