Есть ли способ показать разрешения для файла без использования `ls`

Вот и все – просто интересно, есть ли другой способ узнать разрешения для файла, не делая ls -l чтобы увидеть там строку значений.

Насколько я знаю, в chmod нет опции show .

4 Solutions collect form web for “Есть ли способ показать разрешения для файла без использования `ls`”

Помимо stat (для Linux), есть инструменты, которые позволяют вам делать это как побочный эффект. Например, программа tar может сделать это:

 tar cf - filename | tar tvf - 

Например

 $ tar cf - foo |tar tvf - rwxr-xr-x 1021/1021 18 Jan 13 21:40 2016 foo 

Используя специальный "-" , он достаточно портативен (он работает с AIX , HPUX , Solaris , Linux и FreeBSD ).

Термин «разумно переносимый» применяется к

  • доступность
  • идентичный формат

Есть несколько комментариев о статистике и переносимости. Здесь выведено из GNU coreutils stat :

 $ stat foo File: `foo' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 784564 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 1001/ tom) Gid: ( 100/ users) Access: 2016-05-12 19:03:54.773503477 -0400 Modify: 2016-05-12 19:03:54.773503477 -0400 Change: 2016-05-12 19:03:54.773503477 -0400 Birth: - 

и выход из BSD stat (OSX):

 $ stat foo 16777221 61893362 -rwxr-xr-x 1 tom wheel 0 0 "May 12 19:03:54 2016" "May 12 19:03:54 2016" "May 12 19:04:59 2016" "May 12 19:03:54 2016" 4096 0 0 foo 

И вот пример вывода из AIX istat (выглядит по- другому для меня):

 $ istat foo Inode 3166649 on device 32768/13 File Protection: rwxr-xr-x Owner: 1021(dickey) Group: 1021(dickey) Link count: 1 Length 18 bytes Last updated: Wed Jan 13 21:40:30 UTC 2016 Last modified: Wed Jan 13 21:40:30 UTC 2016 Last accessed: Wed Jan 13 21:40:20 UTC 2016 

Это больше специфично для Linux и неясно (потребуются инструменты ACL), но getfacl будет показывать аналогичный результат, даже если в файле нет ACL:

 [root@mymachine ~#] getfacl my_file.txt #file: my_file.txt #owner: root #group: root user::rw- group::r-- other::r-- 

Я предполагаю, что у AIX есть perl .

 perl -e 'printf "%03o\n", (stat( $ARGV[0] ))[2] & 07777' /etc/hosts 

Функция stat возвращает всевозможные захватывающие метаданные о выбранном файле. Здесь я просто использую третий элемент ( [2] считая от нуля), что в основном относится к разрешениям. printf "%03o\n" выводит значение разрешений в восьмеричном (например, 644 , 1644 или 007 ) с тремя или четырьмя символами в результате.

Вы можете использовать stat , как в stat <filename> .

  • Что означает «command1 -> command2» в результатах моего ls -al?
  • Создание текстового файла списка записей в каталоге в корзине
  • Файлы Concat 1000 в каталоге
  • ls или find, чтобы исключить двоичные файлы
  • ls и команда find, исключая определенный каталог
  • Как я могу захватить два столбца вывода ls в сценарии bash
  • Ожидайте парики, когда я использую одинарную кавычку в
  • Определить папку в bash
  • «Ls» в выводах каталога «Нет такого файла или каталога» для некоторых файлов
  • Количество файлов в каталоге, начиная с определенного текста
  • Как ограничить количество файлов, напечатанных ls?
  • Linux и Unix - лучшая ОС в мире.