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.
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>
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
.
Quelques informations supplémentaires sur stat
:
$ stat -c %a file.txt
777
$ stat -c %A file.txt
-rwxrwxrwx
essayez ceci pour tout lister
stat --format "%a %n" *