Manchmal ist es nötig aus einem Verzeichniss eine eingene Partition zu machen.
Es kann z.B. geschehen das mehr Plattenplatz als vorgesehen benötigt wird. Mir ist das Passiert und ich habe mir dann überlegt /opt eine eigene Festplatte zu spendieren. Also Festplatte eingebaut, Partitioniert und unter /mnt gemountet
Um die Daten von opt auf die neue Festplatte zu bekommen habe ich folgendenen Befehl verwendet.
cd /opt tar cf - . | ( cd /mnt ; tar xfp - )
Hier werden die zu kopierenden Daten in eine Pipe geschoben (tar c) und von dort an anderer Stelle wieder ausgepackt. Zwei Vorteile hat diese Vorgehensweise. Einerseits kann man so leicht ganze Verzeichnisbäume kopieren und zweitens bleiben alle Dateiattribute erhalten.
Der Befehl kopiert alle Dateien unterhalb des Verzeichnisses /opt in das Zielverzeichnis /mnt unter Beibehaltung aller Dateiattribute. Solche Befehlskombinationen sind auf den ersten Blick etwas erschreckend. Aber hier wird die besondere Stärke von UNIX ausgenutzt, Programme miteinander zu kombinieren. Zunächst wechselt der Befehl cd in das Startverzeichnis /opt. Das ist wichtig, weil so in die >>tar-Datei<< kein Pfadname vor dem Startverzeichnis abgestellt wird. Durch die Kombination f - wird statt eines Speichermediums oder einer Datei, in die Standardausgabe stdout und damit in die Pipe geschrieben. Rechts von der Pipe wird also ein auspackender tar stehen. Den kann man dort auch leicht identifizieren. Er steht in einer Klammer mit dem Befehl cd, der zunächst in das Zielverzeichnis /mnt (dort ist die neue Festplatte gemountet) wechselt. Nur so gelangen die Daten überhaupt an einen anderen Ort. Dort holt tar auf der rechten Seite die Daten aus der Pipe und legt sie dort ab, wo er steht. Das p gewährleistet auch für normale Anwender, dass alle Rechte der Dateien so bleiben, wie sie vor dem Kopieren waren.