Was bedeutet die Nummer nach Unix / Linux-Dateiberechtigungen wie „-rw-rw-r--. 1 ”bedeutet in der Ausgabe“ ls -l ”

17

Kann jemand erklären -rw-rw-r--. 1und einige "detaillierte" Informationen über den Befehl ls -lart geben.

Was bedeutet die Nummer 1nach den Dateiberechtigungen? Warum ändert es sich oder warum unterscheidet es sich für verschiedene Dateien?

VAR121
quelle
4
en.wikipedia.org/wiki/…
Karoly Horvath
2
Haben Sie versucht, selbst Informationen zu finden (Handbuchseiten usw.)? War die Information unklar?
Daniel Andersson
1
@yi_H, ich sehe keine Informationen über die Nummer nach den Berechtigungen.
Shahbaz
1
Ich war mir sicher, dass die Frage von user1688102 bereits gestellt und beantwortet wurde, kann sie aber nicht finden. @Shahbaz: Dies ist die Anzahl der Verweise auf denselben Inode, dh die Anzahl der Hardlinks, dh die Anzahl der verschiedenen Namen für dieselbe Datei (ausgenommen Softlinks).
RedGrittyBrick
1
Ich habe die Seite des Mannes gesehen. Die Informationen waren nicht klar und es wurden keine Informationen zu Berechtigungen in man ls @Daniel
VAR121

Antworten:

15

Einige Beispiele:

-rwxrw-r-- 1ist eine Datei mit Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer. Die Gruppe hat gelesen und geschrieben, andere haben nur gelesen. Es gibt keine Links zu diesen Daten.

drwxr-xr-x 10ist ein Verzeichnis mit 8 Dateien. Die zusätzlichen 2 sind .und ... Nur der Eigentümer kann Dateien in diesem Verzeichnis erstellen, andere können auf die Dateien im Verzeichnis zugreifen und den Inhalt dieser Dateien lesen, wenn die Berechtigungen dies zulassen.

-r-------- 2ist eine Datei, die nur der Eigentümer lesen, aber nicht ausführen oder ändern kann. Es hat einen Link, was bedeutet, dass sich irgendwo auf der Festplatte eine andere Dateireferenz befindet, die auf dieselben Daten zugreift. Der eigentliche "Dateiinhalt" auf der Festplatte enthält also 2 "Dateien", die darauf verweisen. Diese Links werden häufig mit lnohne Angabe erstellt -s.

So:

  • Zeichen 1 ist ein Knotentyp: häufig -oder dzeigt eine Datei oder ein Verzeichnis an.
  • Die Zeichen 2, 3, 4 geben für den Eigentümer read, write und e xecute an.
  • Die Zeichen 5, 6, 7 machen dasselbe für die Gruppe.
  • Die Zeichen 8, 9, 10 tun dasselbe für andere.
  • Die Anzahl der nachfolgenden Berechtigungszeichen gibt die Anzahl der Links an, wenn der Knoten eine Datei ist, und die Anzahl der "Unterknoten", wenn der Knoten ein Verzeichnis ist.

Siehe Kapitel Das Langformat von man ls.

sapht
quelle
Wie @sapht sagte, impliziert die Nummer (für ein Verzeichnis) am Ende, dass die Anzahl der Dateien in einem Verzeichnis falsch ist, denke ich. Weil ich Tausende von Dateien im Verzeichnis habe und es immer noch 2
VAR121
Ich habe noch nie ein ls gesehen, das die Anzahl der Verzeichnis-Unterknoten nicht im Langformat druckt. Auf welchem ​​Betriebssystem / welcher Distribution bist du? Gnus, Busybox und Darwin drucken alle die Knotenanzahl. Ist es wirklich ein Verzeichnis und kein anderer Knotentyp?
Sapht
Meine Distribution (Linux Mint 18.3) hat kein solches Kapitel in lsder Manpage. Keines der Felder wird dort erklärt. Ich denke, dass es für Ubuntu genauso ist.
bleistift2
5

Bei Dateien ist dies die Anzahl der Hardlinks zum Inhalt der Datei. 1 bedeutet keine Hardlinks (der typische Fall), eine Zahl N über 1 bedeutet, dass dieser und ein anderer N-1- Dateiname denselben Inhalt haben.

Für Verzeichnisse geben die meisten, aber nicht alle Dateisysteme eine Verbindungsanzahl von 2+ N an, wobei N die Anzahl der Unterverzeichnisse ist.

ndemou
quelle
1

[max @ localhost ~] $ ll

insgesamt 4

drwxrwxr-x 2 max max 4096 25. September 17:11 zzz

Hier bedeutet 2 die Anzahl der Links

Jetzt werde ich 3 Verzeichnisse in zzz erstellen

Jetzt ändert sich der Wert auf 5

[max @ localhost ~] $ cd zzz
[max @ localhost zzz] $ mkdir abc
drwxrwxr-x 5 max max 4096 25. September 17:16.
drwx ------ 5 max max 4096 25. September 17:12 ..
drwxrwxr-x 2 max max 4096 25. September 17:16 a
drwxrwxr-x 2 max max 4096 25. September 17:16 b
drwxrwxr-x 2 max max 4096 25. September 17:16 c

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

insgesamt 4

drwxrwxr-x 5 max max 4096 25. September 17:16 zzz

Das liegt daran, dass jetzt 5 Verzeichnisse in zzz 3 vorhanden sind a b cund 2 versteckte Verzeichnisse sind. ..

Wenn ich eine Datei erstelle, passiert nichts mit der Anzahl der Links

[max @ localhost zzz] $ touch 1 2 3
[max @ localhost zzz] $ ls -al
insgesamt 20
drwxrwxr-x 5 max max 4096 25. September 17:26. ------> aktuelle Verzeichnisverknüpfungsanzahl
drwx ------ 5 max max 4096 Sep 25 17:12 .. ------> Anzahl der übergeordneten Verzeichnisverbindungen
-rw-rw-r-- 1 max max 0 Sep 25 17:26 1
-rw-rw-r-- 1 max max 0 Sep 25 17:26 2
-rw-rw-r-- 1 max max 0 Sep 25 17:26 3
drwxrwxr-x 2 max max 4096 25. September 17:16 a
drwxrwxr-x 2 max max 4096 25. September 17:16 b
drwxrwxr-x 2 max max 4096 25. September 17:16 c
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
insgesamt 4
drwxrwxr-x 5 max max 4096 25. September 17:26 zzz

Wenn ich jedoch ein Verzeichnis lösche, ändert sich die Anzahl der Links

[max @ localhost zzz] $ rmdir bc
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
insgesamt 4
drwxrwxr-x 3 max max 4096 25. September 17:28 zzz
max
quelle
Viel (vielleicht zu viel) Detail für Dirs, kein Wort für Dateien.
ndemou