Как отобразить свойства файла через терминал?

Что такое командная строка, которая отображает информацию (или свойства) файла, например, в методе графического интерфейса Отображать свойства в GNOME?

Свойства дисплея GNOME

я знаю это ls -l показывает свойства; а как вывести ту же информацию?

Например, вместо

rw-rw-r--

у нас есть такой рендеринг GUI:

abdennour@estifeda: $wishedCmd myFile
 ..... 
  Permissions : 
    Owner Access: Read & write 
    Group Access :Read & Write 
    Others Access: Read only
   .....

Скриншот предоставлен разрешений

10 ответов

Решение

Что-то вроде

#!/bin/bash
print_perm() {
  case "$1" in
    0) printf "NO PERMISSIONS";;
    1) printf "Execute only";;
    2) printf "Write only";;
    3) printf "Write & execute";;
    4) printf "Read only";;
    5) printf "Read & execute";;
    6) printf "Read & write";;
    7) printf "Read & write & execute";;
  esac
}

[[ ! -e $1 ]] &&  echo "$0 <file or dir>" 2>&1 && exit 1

perm=$(stat -c%a "$1")
user=${perm:0:1}
group=${perm:1:1}
global=${perm:2:1}

echo "Permissions :"
printf "\tOwner Access: $(print_perm $user)\n"
printf "\tGroup Access: $(print_perm $group)\n"
printf "\tOthers Access: $(print_perm $global)\n"

Выход

# rwxr-x--- foo*
> ./abovescript foo
Permissions :
    Owner Access: Read & write & execute
    Group Access: Read & execute
    Others Access: NO PERMISSIONS

Использовать stat Команда, чтобы узнать детали файла. Если имя файла file_nameиспользовать

stat file_name

Для этого нет специальной команды. Для мета-информации, такой как время, размер и права доступа, используйте

ls -l path-to-file

Вы также можете быть заинтересованы в том, что это за файл, file path-to-file поможет вам в этом.

Ты пытался file?

Например:

file picture.jpg
ls -lh filename

для читаемой человеком версии

Отобразите атрибуты файлов в текущем каталоге:

lsattr

Перечислите атрибуты файлов по определенному пути:

lsattr путь

Рекурсивно перечислить атрибуты файлов в текущем и последующих каталогах:

lsattr -R

Показать атрибуты всех файлов в текущем каталоге, включая скрытые:

lsattr -a

Показать атрибуты каталогов в текущем каталоге:

lsattr -d

Ты можешь использовать ls Команда для отображения файлов и их свойств, добавив -l вариант. Пример:

$ls -l filename

Вы можете попробовать следующий скрипт:

      set filepath "$HOME/.bashrc"
set fileuri $(echo $filepath | python -c "import sys, pathlib; print(pathlib.Path(input()).resolve().as_uri())")
dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItemProperties array:string:"$fileuri" string:""

PS Если вы не конвертируете путь к файлу в URI файла, тогда путь будет выглядеть так:$HOME/Desktop/directory with spaces and ümläuts.txtне будет работать.

Как описано в Linux Pocket Guide Даниэля Дж. Барретта, вы можете перечислить расширенные атрибуты файлов и каталогов с помощью:

lsattr file_name

Использование

ls -l filename

(используйте маленький L)

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