Я хочу видеть только имя файла и соответствующие права доступа к файлу. Как это сделать?
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
Вы можете передать его по конвейеру gawk
и вывести нужные поля, примерно так или подобное:
ls -l | gawk '{print $1 " " $2 " " $9}'
Команда stat
сделана для этого, например: [
stat -c '%A %n' *.txt
или
stat --printf '%A\t%n\n' *.txt
], где спецификаторы формата имеют следующие значения
%A access rights in human readable form
%n file name
Вы можете получить большую часть пути, используя используя ls
: ls -lGg --time-style = +
выведет только режимы доступа, количество ссылок, размер и имя.
Обработка вывода ls
сложна, потому что имена файлов могут содержать что угодно, поэтому вы не можете ничего предполагать о них при обработке. Было бы лучше использовать find
вместо того, чтобы вывести точно необходимую информацию с помощью -printf
:
find . -printf '%M %p\n'
(с такими параметрами, как -maxdepth
, используемыми для ограничения в листинге.)