Linux ls для показа только даты имени файла и размера

Я думал, что это просто означало "и так далее" как в "и т.д...." в списке.

Этот продукт помогает домашним животным как собаки, кошки, и т.д...

77
07.10.2011, 07:07
8 ответов

Почему бы не использовать stat вместо ls?

stat -c "%y %s %n" *
100
27.01.2020, 19:31
  • 1
    Это хорошо, но это действительно имеет "среду слишком большой" / "список аргументов слишком долго" проблема потенциально. –  Mat 07.10.2011, 10:02
  • 2
    :-) просто подтверждение концепции. В Реальной жизни [TM] это будет a find . -type f -print0 | xargs -0 stat -c "%y %s %n" –  f4m8 13.10.2011, 10:27
  • 3
    Отформатировать вывод stat, можно добавить информацию о ширине к строке формата как C printf функция, например. "%y %8s %n", это не документируется, но кажется работами (coreutils 8.17, Fedora 18) –  LiuYan 刘研 07.04.2013, 10:47
  • 4
    Поскольку с ls Я могу произвести его с тысячей символов разделителя. Как это работает с stat? –  Al Bundy 17.03.2018, 17:43

Можно получить большой контроль о том, как Вы перечисляете файлы с 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 действие является подробным в странице справочника. Можно выбрать другую информацию времени, какой размер Вы хотите (размер файла или используемые дисковые блоки) и т.д. Можно также сделать этот сейф для необычных имен файлов, если последующая обработка необходима.

31
27.01.2020, 19:31
  • 1
    Выше входа для нахождения (' %CY%Cm%Cd. % C... '), длинно. По крайней мере, GNU находит, имеет %C+ (вывод "2016-08-29+10:57:56.9201257840") и %Cc (вывод "Mo 29 августа 2016 10:57:56 ПОЯСА") –  guettli 01.12.2016, 11:47

Вы могли всегда использовать другую утилиту как awk отформатировать вывод ls1:

/bin/ls -ls | awk '{print $7,$8,$9}'


1. Да, обычно, Вы не должны анализировать вывод ls, но в этом случае вопрос конкретно призывает к нему...

24
27.01.2020, 19:31
  • 1
    Это не печатает размер файла все же. И это только печатает первую часть имен файлов с пробелом в них. И это может перестать работать если ls искажается (сказать alias ls='ls -i'). Действительно необходимо проявить большую заботу, если Вы хотите пойти о парсинге ls вывод. –  Mat 07.10.2011, 09:16
  • 2
    я имел размер файла там и затем вырезал его (неопределенный момент) - я восстановлю его. И я соглашаюсь обо всем парсинге ре протестов ls, но именно это OP, требуемый... –  jasonwryan 07.10.2011, 09:31
  • 3
    , я не соглашаюсь, OP хочет имена файлов, не первую часть имен файлов, если имя файла, оказывается, имеет пробел. (Используя /bin/ls избежал бы проблемы псевдонима.) –  Mat 07.10.2011, 09:34
  • 4
    Это понято неявно: что указано, явно то, что OP хочет решение с ls то, которое мы согласовываем, не собирается удовлетворять пробельное требование. /bin/ls предложение является хорошим. –  jasonwryan 07.10.2011, 09:44

где пространство определяется как разделитель, и f6 означает поле 6

ls -lt | cut -d" " -f6-
1
27.01.2020, 19:31
  • 1
    , который это привело к сбою, потому что ls использует пробелы для добавления отступа и иногда это-f6-другие времена, это-f5 –  Aquarius Power 16.04.2016, 09:37

Вы также можете использовать команду 'дата'. Очень просто использовать:

-r [имя файла]

5
27.01.2020, 19:31

Вы можете конвейерно выполнить две команды

ls -l|cut -d" " -f5
1
27.01.2020, 19:31

ls -s1возвращает размер и имя файла только в AIX, не уверен в Linux

1
27.01.2020, 19:31

Если вы хотите использовать ls, но сохранить правильный размер, вы можете использовать:

ls -Ss1pq --block-size=1
7
27.01.2020, 19:31

Теги

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