Как изолировать права доступа к файлу и имя файла из результатов ls -l?

Я хочу видеть только имя файла и соответствующие права доступа к файлу. Как это сделать?

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
0
задан 29 April 2021 в 16:20

3 ответа

Вы можете передать его по конвейеру gawk и вывести нужные поля, примерно так или подобное:

ls -l | gawk '{print $1 " " $2 " " $9}'
1
ответ дан 7 May 2021 в 17:42

Команда stat сделана для этого, например: [

stat -c '%A %n' *.txt

или

stat --printf '%A\t%n\n' *.txt

], где спецификаторы формата имеют следующие значения

   %A     access rights in human readable form
   %n     file name
2
ответ дан 7 May 2021 в 17:42

Вы можете получить большую часть пути, используя используя ls : ls -lGg --time-style = + выведет только режимы доступа, количество ссылок, размер и имя.

Обработка вывода ls сложна, потому что имена файлов могут содержать что угодно, поэтому вы не можете ничего предполагать о них при обработке. Было бы лучше использовать find вместо того, чтобы вывести точно необходимую информацию с помощью -printf :

find . -printf '%M %p\n'

(с такими параметрами, как -maxdepth , используемыми для ограничения в листинге.)

1
ответ дан 7 May 2021 в 17:42

Другие вопросы по тегам:

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