# Kommandos zur Dateiverwaltung

cat | Verkettet seine Argumente und schreibt das Ergebnis auf die Standardausgabe:
`user@sonne> cat file.1 file.2 file.3 > file.all # Ausgabe zeilenweise nummerieren user@sonne> cat -n file.1 file.2 file.3 > file.all # Keine aufeinander folgenden Leerzeilen user@sonne> cat -s file.1 file.2 file.3 > file.all`
cd | Wechselt das aktuelle Verzeichnis:
`# absolute Pfadangabe user@sonne> cd /usr/src # relative Pfadangabe user@sonne> cd ../../usr # wechselt nach $HOME user@sonne> cd # wechselt ins vorhergehende Verzeichnis ($OLDPWD) user@sonne> cd -`
cp | Kopiert Dateien:
`user@sonne> cp datei.txt file.txt # rekursiv mit Unterverzeichnissen, bestehende Dateien überschreiben (force) user@sonne> cp -Rf dir dest # nur neuere Dateien user@sonne> cp -u dir dest # Linken anstatt Kopieren user@sonne> cp -l dir dest`
find | Sucht Dateien nach Namen -name, Datum -[a,c]time, Größe -size, Typ -type usw.:
`user@sonne> find /usr/include -name "*.h"`
ln | Richtet einen Link ein:
`# fester Link (Hardlink) user@sonne> ln file.1 link2.1 # symbolischer Link user@sonne> ln -s file.1 symlink2.1`
ls | Zeigt den Inhalt eines Verzeichnisses an:
`user@sonne> ls /boot System.map boot.b map vmlinuz boot.0803 chain.b os2_d.b user@sonne> ls -l /boot/m* -rw-r--r-- 1 root root 9728 Feb 15 16:01 /boot/map`
Option | Wirkung
`ls -a` | Anzeige aller Dateien
`ls -d` | Zeigt bei Unterverzeichnissen nur deren Namen, nicht deren Inhalt an
`ls -i` | Anzeige des Speicherplatzes (Inode) einer Datei
`ls -l` | Anzeige von Namen, Typ, Rechten, Anzahl der Hardlinks, Besitzer, Gruppe, Größe, Zeitmarke
`ls -t` | Anzeige nach Zeitmarke sortiert
`ls -F` | Kennzeichnet Dateitypen durch Anhängen eines Symbols
`*` | Ausführbare Datei
`/` | Verzeichnis
`@` | Symbolischer Link
`|` | Named pipe (FiFo)
`=` | Socket
| "Normale" Datei
mkdir | Legt ein neues Verzeichnis an:
`user@sonne> mkdir ~/testdir # mit anderen Rechten als den durch umask vorgegebenen: user@sonne> mkdir -m 777 ~/testdir # falls übergeordnetes Verzeichnis nicht existiert, soll es angelegt werden: user@sonne> mkdir -p ~/parent/child/testdir`
mv | Verschiebt Dateien und ändert ihren Namen:
`# Umbenennen user@sonne> old new # Verschieben user@sonne> mv new /tmp # Verschieben und Umbenennen user@sonne> mv /tmp/new ~/old`
rm | Löscht Dateien, bzw. entfernt Links auf diese:
`user@sonne> rm datei # rekursiv mit Unterverzeichnissen user@sonne> rm -r dir # Nachfrage vor jeder zu löschenden Datei user@sonne> rm -i *`
rmdir | Löscht Verzeichnisse:
`user@sonne> rmdir dir # Übergeordnete Verzeichnisse löschen, falls diese leer sind user@sonne> rmdir -p ~/parent/child/testdir`
split | Zerlegt eine Datei in Teile vorgegebener Größe:
`user@sonne> ls -l archiv.tgz -rw-r--r--r 1 user users 3998311 Apr 7 08:41 archiv.tgz user@sonne> split -b 1400000 archiv.tgz user@sonne> ls -l -rw-r--r--r 1 user users 3998311 Apr 7 08:41 archiv.tgz -rw-r--r--r 1 user users 1400000 Apr 7 08:42 xaa -rw-r--r--r 1 user users 1400000 Apr 7 08:42 xab -rw-r--r--r 1 user users 1198311 Apr 7 08:42 xac`
tee | Vervielfältigt die Standardeingabe (Weiteres Beispiel).
`user@sonne> ls -l | tee inhalt`