Wie kann ich unter FreeBSD und auch unter Linux den numerischen chmod
Wert einer Datei ermitteln? Zum Beispiel 644
anstelle von -rw-r--r--
? Ich brauche einen automatischen Weg für ein Bash-Skript.
Wie kann ich unter FreeBSD und auch unter Linux den numerischen chmod
Wert einer Datei ermitteln? Zum Beispiel 644
anstelle von -rw-r--r--
? Ich brauche einen automatischen Weg für ein Bash-Skript.
Antworten:
Sie können den Wert direkt mit einem stat-Ausgabeformat abrufen, z. B. BSD / OS X:
stat -f "%OLp" <file>
oder unter Linux
stat --format '%a' <file>
und in busybox
stat -c '%a' <file>
busybox
Einsatzstat -c '%a' <file>
--format
können abgekürzt werden -c
. Dies funktioniert:stat -c %a <file>
Verwenden Sie es stat YOUR_FILE
sei denn, Sie schreiben ein Skript, das Folgendes berechnet:
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
Übrigens benutze ich stat command
weiter Linux box
nicht freebsd
, da es HFS
wahrscheinlich mit recherchieren funktioniert UFS
.
FreeBSD box
, verwenden Sie stat -x YOUR_FILE
unterFreeBSD box
stat -r YOUR_FILE |awk '{print $3}'
gibt deine Erlaubnis.
666
oder Codes, -rw-wxrw-
sondern ein Text mit Erläuterungen zu jeder Erlaubnis.
awk
zu schreiben, um ein numerisches Ergebnis abzurufen.
Einige zusätzliche Informationen zu stat
:
$ stat -c %a file.txt
777
$ stat -c %A file.txt
-rwxrwxrwx
stat -f %A file.txt
unter Mac, es 644 oder eine andere 3 digitale Zahl zurückkehren würde.
Versuchen Sie dies, um alle aufzulisten
stat --format "%a %n" *