Відповіді:
Чому б не використовувати stat
замість ls
?
stat -c "%y %s %n" *
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
ви можете додати інформацію про ширину до рядка формату, як функція C printf, наприклад "%y %8s %n"
, це не задокументовано, але, здається, працює (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
(вихід "Пн 29 серпня 2016 10:57:56 CEST")
Ви завжди можете використовувати іншу утиліту, як-от awk
відформатувати вихід ls
1 :
/bin/ls -ls | awk '{print $7,$8,$9}'
1.Да, як правило, вам не слід розбирати вихід ls, але в цьому випадку питання спеціально вимагає цього ...
ls
він відчужений (скажіть alias ls='ls -i'
). Ви дійсно повинні бути дуже обережні, якщо ви хочете піти про розбір вихідних даних.
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
щоб ви могли також відслідковувати, як тільки розмір маркера! Якщо хтось хоче опублікувати це як повну відповідь, не соромтеся, я зараз занадто сплю :)