Я хочу видеть только имя файла и соответствующее разрешение файла. Как это сделать?
ls -l дает
-rw-rw-r-- 1 jb jb 102 Apr 28 12:48 hello2.txt
-rw-rw-r-- 1 jb jb 102 Apr 28 12:53 hello.txt
Я хотел бы видеть, как показано ниже
-rw-rw-r-- 1 hello2.txt
-rw-rw-r-- 1 hello.txt
решение1
Команда stat
создана для этого примера:
stat -c '%A %n' *.txt
или
stat --printf '%A\t%n\n' *.txt
где спецификаторы формата имеют следующие значения
%A access rights in human readable form
%n file name
решение2
Большую часть пути можно выполнить, используя ls
саму функцию: ls -lGg --time-style=+
она выведет только режимы доступа, количество ссылок, размер и имя.
Обработка ls
выходных данных сложна, поскольку имена файлов могут содержать практически все, что угодно, поэтому вы не можете ничего предположить о них при обработке. Лучше использовать find
вместо этого, чтобы напечатать именно необходимую информацию, используя-printf
:
find . -printf '%M %p\n'
(С такими опциями, -maxdepth
как использование по мере необходимости для ограничения листинга.)
решение3
Вы можете передать его по конвейеру gawk
и вывести нужные вам поля, что-то вроде этого или похожего:
ls -l | gawk '{print $1 " " $2 " " $9}'