Random Thoughts & Pointless Posts
Rekursives verschieben in der Shell
Üblicherweise funktioniert einfaches verschieben eines Verzeichnisses unter Linux mit dem
mv SOURCE DESTINATION
Befehl. Leider werden dadurch nicht wirklich die Dateien verschoben, sondern nur die Inodes geändert um auf die aktuelleren Daten zu zeigen. Gerade bei ganzen Verzeichnissen ist das manchmal problematisch, da so ein echtes rekursives verschieben kaum möglich ist
Anhilfe verschafft dabei das verpacken der Daten in ein Tar – Archiv und das entpacken der Daten an der Stelle an der sie gebraucht werden. Dazu gibt es einen recht praktischen Befehl, der die Dateien verpackt, das Archiv an den STDOUT gibt und per Pipe wieder an tar geschickt wird das die Daten an gewünschter Stelle wieder entpackt:
Im Quellverzeichniss einfach
tar cf - . |(cd /targetdir; tar xvf -)
ausführen und das „targetdir“ entsprechend anpassen.
Dabei werden alle bereits bestehenden Dateien im Targetverzeichnis beibehalten, Dateien mit gleichem Namen werden überschrieben.
| Print article | This entry was posted by xarumanx on May 18, 2009 at 15:56, and is filed under How-To. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |