Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:dateitypen [2011/06/12 09:21] ingo_wichmann |
admin_grundlagen:dateitypen [2020/12/04 14:33] holger_jakobs [Symbolischer Link] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Dateitypen ====== | ====== Dateitypen ====== | ||
+ | |||
+ | Folgende Dateitypen gibt es: | ||
+ | |||
+ | ^ Abkürzung ^ Dateityp ^ | ||
+ | | f | gewöhnliche Datei | | ||
+ | | d | Verzeichnis | | ||
+ | | l | symbolischer Link | | ||
+ | | b | Blockorientiertes Gerät | | ||
+ | | c | Zeichenorientiertes Gerät | | ||
+ | | p | Benannte Pipe (FIFO) | | ||
+ | | s | Socket | | ||
+ | |||
+ | Diese Abkürzungen können bei der Option ''-type'' von ''find'' verwendet werden. Sie stehen in | ||
+ | der Ausgabe von ''ls -l'' ganz links (lediglich bei gewöhnlichen Dateien steht dort ''-'' statt ''f''. | ||
+ | |||
+ | Welche Dateitypen finden sich z.B. unter ''/dev'': | ||
+ | find /dev -printf '%y\n' | sort | uniq -c | ||
+ | |||
===== Normale Datei ===== | ===== Normale Datei ===== | ||
touch datei | touch datei | ||
> datei | > datei | ||
- | ===== Verzeichnisse ===== | + | |
+ | Der wesentliche Unterschiede besteht, falls ''datei'' bereits existiert. ''touch'' ändert den Dateiinhalt nicht, sondern aktualisiert lediglich die Zeitstempel. ''>'' überschreibt die Datei mit leerem Inhalt, die Größe ist anschließend also 0 Bytes. | ||
+ | |||
+ | vgl. [[hardlink]] | ||
+ | |||
+ | ===== Verzeichnis ===== | ||
mkdir verzeichnis | mkdir verzeichnis | ||
- | ===== Symbolische Links ===== | + | Falls ein Verzeichniseintrag mit dem Namen bereits besteht, erscheint eine Fehlermeldung. |
- | ln -s /tmp symlink | + | |
- | ==== Symlinks und find ==== | + | mkdir -p pfad/zu/einem/verzeichnis |
- | mkdir vorher nachher linkdir | + | Hier werden auch bei Bedarf alle Zwischenverzeichnisse bis zum ''verzeichnis'' erstellt. Falls diese oder auch das ''verzeichnis'' bereits existieren, passiert nichts. |
- | touch nachher/datei | + | |
- | ln -s linkdir/symlink ../vorher/datei | + | |
| | ||
- | Alle Links in ''linkdir'' finden, die auf ''vorher'' zeigen und auf ''nachher'' umbiegen: | + | ===== Link ===== |
- | find linkdir/ -type l -lname '../vorher/*' -printf '%f/%l\n\0' | while IFS=/ read -d $'\0' link target; do echo "ln -sf $link ../nachher${target#../vorher}"; done | + | |
- | ===== Gerätedateien ===== | + | Jede Datei hat mindestens einen Link -- nämlich ihren Verzeichniseintrag. Um zu einer Datei einen |
+ | weiteren Verzeichniseintrag hinzuzufügen (also einen weiteren Link), schreibt man: | ||
+ | ln datei1 datei2 | ||
+ | |||
+ | ''datei1'' und ''datei2'' müssen sich im selben Dateisystem (Datenträger, Partition) befinden, weil keine neue Datei erzeugt wird, sondern lediglich ein weiterer Verzeichniseintrag erzeugt wird, der auf denselben i-Node zeigt. | ||
+ | |||
+ | ===== Symbolischer Link ===== | ||
+ | ln -s /tmp symlink | ||
+ | |||
+ | vgl. [[Symbolische Links]] | ||
+ | |||
+ | ===== Gerätedatei ===== | ||
mknod cdev c 5 3 | mknod cdev c 5 3 | ||
mknod bdev b 3 7 | mknod bdev b 3 7 | ||
- | ===== Named Pipes ===== | + | ===== Named Pipe ===== |
mkfifo /tmp/named-pipe | mkfifo /tmp/named-pipe | ||
- | ===== Sockets ===== | ||
- | (leider kein einfaches Beispiel) | ||
+ | Vgl. [[admin_grundlagen:named pipe]] | ||
+ | ===== Socket ===== | ||
+ | ( CentOS 7, nicht in der Version von Debian 6.0 ) | ||
+ | |||
+ | Server: | ||
+ | nc -l -U /tmp/socket | ||
+ | |||
+ | Client: | ||
+ | nc -U /tmp/socket |