97

What is the command line that displays file informations (or properties), such as in GUI method Display properties in GNOME?

Display properties GNOME

I know that ls -l shows properties; but how to display the same informations?

For example, instead of

rw-rw-r--

we have such GUI rendering:

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

Screenshot of permissions dialogue

1
  • 14
    What about stat? That will give you a huge amount of information on a selected file or folder; see man stat.
    – user76204
    Oct 8, 2013 at 15:33

10 Answers 10

165

Use the stat command to know the details of the file. If file name is file_name, use

stat file_name
0
41

There is no dedicated command for this. For meta information like time, size and access rights, use

ls -l path-to-file

You might also be interested in what kind of file it is, file path-to-file will help you with that.

32

Have you tried file?

For example:

file picture.jpg
1
  • 1
    I'm sure he meant permissions.
    – Braiam
    Oct 8, 2013 at 15:07
19

Something like

#!/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"

Output

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

for human readable version

2
  • 2
    This makes the filesize "readable". You get 32K instead of 31900. But does not help for access rights. But helpful anyway ;-) Jul 12, 2019 at 6:02
  • Yea slight change, but not having to do mental size conversion is a plus. Good tip.
    – Andrew
    Jun 4, 2022 at 6:25
3

Display the attributes of the files in the current directory:

lsattr

List the attributes of files in a particular path:

lsattr path

List file attributes recursively in the current and subsequent directories:

lsattr -R

Show attributes of all the files in the current directory, including hidden ones:

lsattr -a

Display attributes of directories in the current directory:

lsattr -d

3
  • is there a way to see if the file is a 32 or 64 bit executable? Dec 30, 2019 at 16:29
  • In Terminal you can use : `` objdump -f file.exe `` you'II see file format output like this : ` `` file.exe: file format pei-i386 architecture: i386, flags 0x0000..: EXEC_P, HAS_DEBUG, D_PAGED start address 0x00402.... `` So file format pei-i386 => 32bit Other method to check out what format the executable file has. using ` file ` command as example: `` $ file myfile.exe `` response > myfile.exe: PE32 executable (GUI) Intel 80386, for MS Windows ```
    – Bou Said
    Jan 9, 2020 at 1:47
  • I tried the objdump way first and got "file format not recognized" then when I used the file command got "POSIX shell script, ASCII text executable, with very long lines" Jan 9, 2020 at 1:57
1

You can use ls command to list files and their properties by adding the -l option. Example:

$ls -l filename
0

Use

ls -l filename

(use small L)

0

As described in the Linux Pocket Guide by Daniel J. Barrett you can list extended attributes of files and directories with:

lsattr file_name
0

You can try the following script:

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:""

P.S. If you do not convert file path to file uri then path like $HOME/Desktop/directory with spaces and ümläuts.txt will not work.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .