Как отобразить свойства файла через терминал?
Что такое командная строка, которая отображает информацию (или свойства) файла, например, в методе графического интерфейса Отображать свойства в 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
поможет вам в этом.
Отобразите атрибуты файлов в текущем каталоге:
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