tar cvf /var/lib/backup/sample.tar /home/user/.project
Wenn ich jedoch extrahiere, erhalte ich auch die Eltern
/backup/
- /home/
- /user/
- .project/
Dieser Tar-Befehl erledigt seine Aufgabe, da er in seinen übergeordneten Elementen nichts anderes einschließt ( user
z. B. andere Ordner darunter).
Ich möchte dies programmgesteuert tun, daher ist das Ändern des aktuellen Arbeitsverzeichnisses /home/user/
keine wirkliche Option. Ist das möglich?
Antwort1
Sie können die -C
Option entweder zum Wechseln in das /home/user
Verzeichnis vor dem Tarieren verwenden oder --strip-components 2
beim Extrahieren.
tar cvfC /var/lib/backup/sample.tar /home/user .project
# Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2
Antwort2
Ich denke, wenn Sie cd
in das oberste Verzeichnis gehen, aus dem Sie die Datei erstellen möchten tar
, sollte dieses Problem nicht auftreten.
cd
nach user
und tar
nach .project
... können Sie das Ziel für die Tar-Datei wie /var/...
zuvor angeben.
Oder gibt es einen Grund, warum Sie nicht wollen/ cd
können user
?