ls --> anzeigen von octal permissions?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

ls --> anzeigen von octal permissions?

Beitrag von meandtheshell » 15.07.2006 11:35:30

Hallo,
ich möchte beim listing mit ls die octal permissions angezeigt bekommen -- d.h. die spalte mit z.B.

Code: Alles auswählen

drwxr-----
in folgendem screen dump sollte in oktaler Form angezeigt werden also

Code: Alles auswählen

d0740

Code: Alles auswählen

max@pc1:~/misc/binary$ ls -ln
total 16
drwxr-xr-x 3 1000 1000 4096 2006-06-13 17:35 google_earth
drwxr-xr-x 2 1000 1000 4096 2005-10-07 10:10 rar
drwxr-xr-x 3 1000 1000 4096 2006-07-14 19:51 sancho
drwxr-xr-x 5 1000 1000 4096 2005-10-24 14:56 skype-1.2.0.18
max@pc1:~/misc/binary$
Kennt jemand einen besseren Weg als den, den ich seit längerem verwende http://linuxfromscratch.org/pipermail/b ... 03739.html evtl. ein gepatchtes ls binary mit einer zusätzlichen option für octal output oder sonst etwas?

markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.07.2006 12:02:00

Wie wäre es damit?

Code: Alles auswählen

stat -c"%04a %2h %G %U %10s %y %n\n" *

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 15.07.2006 13:11:37

Gute Idee - mit stat habe ich auch schon einmal hantiert, aber irgendwann wieder vergessen das es das gibt. Der Zeilenumbruch "\n"ist nicht notwendig.
Ich habe das

Code: Alles auswählen

alias lso='stat -c "%04a  %A %13F  %2h %G %U %12s  %z   %n" *'
nun in meine .bashrc eingetragen.

markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.07.2006 13:58:13

Nur als Hinweis: du kannst die Rechte in Oktal auch ganz einfach ausrechnen (deshalb werden sie ja in oktal angegeben):

Jede "Gruppe" (Besitzer, Gruppe, Andere) hat 3 bits "rwx". r ist dementsprechend 4, w ist 2 und x ist 1.
Ein paar Beispiele:

Code: Alles auswählen

rwxr-x--- = 750 (4+2+1, 4+1, 0)
r-x--x--x = 511
Dann gibt es noch das sticky-bit und das chgid und das chuid-bit, welche in den obersten 3 bit sind (die in der Regel 0 sind, und deshalb auch weggelassen werden. 755 ist eigentlich 0755)

Das Sticky-bit wird anstelle des x für "alle anderen" angezeigt (also die letzte Spalte). wenn x gesetzt ist, ist das t klein, sonst groß: "rwt = rwx + t, rwT = rw- + t" und hat den Wert 1, setgid hat 2 und setuid 4. (diese werden ebenfalls anstatt des entsprechenden "x" bei Benutzer oder Gruppe angezeigt, wo auch hier ein großes "S" für fehlenden x steht)

Also noch ein paar weitere Beispiele:

Code: Alles auswählen

rwsr-xr-x = 4755
rwSr--r-- = 4544 (sinnlos)
rwxr-xr-t = 1755
rwsr-s--T = 7740
HTH

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 15.07.2006 15:49:12

Quiz:
[ ] das mit aus/umrechnen war dem meandtheshell neu
[ ] er wusste das alles kann aber nicht schneller umrechnen als eine of the shelf CPU :mrgreen:

markus (der hoffentlich kompetenter ist als der Eindruck den er hinterlässt ;))

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.07.2006 16:25:18

Der Hinweis war auch mehr für zukünftige Postleser gedacht.

Zum Umrechnen: Übung macht den Meister! Nach 10 Minuten kannst du das im Schlaf.

michaa7
Beiträge: 5067
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von michaa7 » 15.07.2006 16:44:47

Hi, mir gefällt das mit stats auch recht gut. Kann man das nicht noch so verändern, dass statt "reguläre datei, verzeichnis, symbolischer link" kürzel kommen? Dann passte das auch in eine zeile.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 16.07.2006 18:04:56

Ich hab mal patches für die coreutils-5.96 aus unstable erstellt.
Im coreutils Verzeichnis müssen die folgenden Dateien gepatcht werden:
lib/filemode.h
lib/filemode.c
src/ls.c

Die oktale Modusanzeige wird mit der Option -y aktiviert (o war besetzt):

Code: Alles auswählen

$ ls -l
drwxr-xr-x 11 bert bert    1248 2006-05-22 08:36 coreutils-5.96
drwxr-xr-x 11 bert bert    1384 2006-05-22 08:36 coreutils-5.96.new
-rw-r--r--  1 bert bert 5066612 2006-05-22 09:54 coreutils-5.96.tar.bz2
drwxr-xr-x  3 bert bert     504 2006-07-15 12:49 debian
-rw-r--r--  1 bert bert     796 2006-07-16 18:02 filemodec.patch
-rw-r--r--  1 bert bert      61 2006-07-16 18:02 filemodeh.patch
-rw-r--r--  1 bert bert     810 2006-07-16 18:02 lsc.patch

Code: Alles auswählen

$ ls -ly
d 0755     11 bert bert    1248 2006-05-22 08:36 coreutils-5.96
d 0755     11 bert bert    1384 2006-05-22 08:36 coreutils-5.96.new
- 0644      1 bert bert 5066612 2006-05-22 09:54 coreutils-5.96.tar.bz2
d 0755      3 bert bert     504 2006-07-15 12:49 debian
- 0644      1 bert bert     796 2006-07-16 18:02 filemodec.patch
- 0644      1 bert bert      61 2006-07-16 18:02 filemodeh.patch
- 0644      1 bert bert     810 2006-07-16 18:02 lsc.patch

Antworten