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

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

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

  • Укажите только количество всех файлов / каталогов для дерева каталогов текущего каталога
  • ls -l vs ls -lL
  • ls выводит несколько столбцов, даже если отправлен в grep с помощью zml-конфигурации grml
  • Количество байтов «ls -l <случайный файл>» по сравнению с «wc -c <random file>»
  • Можно ли изменить интервал между файлами с помощью ls
  • Изменить временную метку файла и время показа вместо года с помощью ls
  • Как печатать только определенные символы?
  • Исправить цвета LS для каталогов с разрешением 777?
  • 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> .

    Interesting Posts

    В emacs (или другом редакторе), как отобразить смещение байта курсора?

    Могу ли я создавать, устанавливать разрешения и записывать в файл с помощью одной команды Unix?

    Смонтируйте файловые системы после загрузки, чтобы избежать задержки fsck для sshd

    Разница между / dev и / sys / class?

    Как сохранить все vim-буферы при изменении окна tmux?

    newgrp и группы, назначенные через pam_group.so

    сетевая топология звездочки – KISS

    Подождите, пока не будет входящего сетевого соединения в течение N минут, затем выполните команду

    Vim не работает внутри tmux

    Как переименовать несколько файлов с помощью сценария оболочки?

    Как выполнить `exec` процесс с пользовательским env?

    Запуск команд, хранящихся в переменных оболочки

    ./configure, синтаксическая ошибка: неожиданный токен (lighttpd)

    Создание каталогов из списка файлов с пробелами в имени

    zsh: Как проверить, включена ли опция

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