web-dev-qa-db-fra.com

Récupère la valeur numérique chmod d'un fichier

Dans FreeBSD et aussi sous Linux, comment puis-je obtenir la valeur numérique chmod d'un fichier? Par exemple, 644 au lieu de -rw-r--r--? J'ai besoin d'un moyen automatique pour un script Bash.

113
stefan.at.wpf

Vous pouvez obtenir la valeur directement en utilisant un format de sortie de statistiques, par ex. BSD/OS X:

stat -f "%OLp" <file>

ou sous Linux

stat --format '%a' <file>

et dans busybox

 stat -c '%a' <file>
173
teppic

utilisation stat YOUR_FILE à moins d'écrire un script qui calcule:

rwx rwx rwx ==> ( r = 4 ) if set + ( w = 2) if set + (x = 1) if set , for example:
You have :
-rw-wxrw- => (4+2+0)(0+2+1)(4+2+) = 0636 
First argument before 9 permissions is one of :
- = regular file
d =  directory
b = block device
c = character device
s = socket
p = pipe
f = fifo

Au fait, j'utilise stat command sur Linux box, pas freebsd, car il examine HFS fonctionne probablement avec UFS.

7
PersianGulf

Quelques informations supplémentaires sur stat :

$ stat -c %a file.txt

777  

$ stat -c %A file.txt

-rwxrwxrwx
4
Mateen Ulhaq

essayez ceci pour tout lister

stat --format "%a  %n" *
2
Hatem Badawi