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

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

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

  • Как я могу сократить, если затем еще использовать формат
  • Количество строк, выводимых ls
  • Автозаполнение Bash дает другое имя файла, чем ls
  • В чем смысл символа «#» перед владельцем?
  • Как найти общий размер файла, сгруппированный по расширению
  • ???? файлов в выводе ls -l
  • Возможно ли, чтобы ls поддерживал порядок своих входов
  • Что означает * рядом с именем файла в выводе ls?
  • 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> .

    Linux и Unix - лучшая ОС в мире.