Wie kann man ein Verzeichnis tarieren und dann die Originale einschließlich des Verzeichnisses entfernen?
Ich versuche, tar
eine Sammlung von Dateien in einem Verzeichnis namens “my_directory” und die Originale mit dem Befehl zu entfernen:
tar -cvf files.tar my_directory --remove-files
Es werden jedoch nur die einzelnen Dateien innerhalb des Verzeichnisses entfernt und nicht das Verzeichnis selbst (was ich im Befehl angegeben habe). Was übersehe ich hier?
EDIT:
Ja, ich nehme an, die Option “remove-files” ist ziemlich wörtlich. Obwohl auch ich die Manpage in diesem Punkt unklar fand. (Unter Linux neige ich dazu, nicht so sehr zwischen Verzeichnissen und Dateien zu unterscheiden, und vergesse manchmal, dass sie nicht dasselbe sind). Es sieht so aus, als ob der Konsens ist, dass es keine Verzeichnisse entfernt.
Mein Hauptanlass, diese Frage zu stellen, rührt jedoch von Tar’s Umgang mit absoluten Pfaden her. Da Sie einen relativen Pfad zu einer zu komprimierenden Datei/zu komprimierenden Dateien angeben müssen, müssen Sie daher in das übergeordnete Verzeichnis wechseln, um es richtig zu tar. So wie ich das sehe, ist die Verwendung irgendeines nachfolgenden ‘rm’-Befehls in dieser Situation potentiell gefährlich. Daher habe ich gehofft, die Dinge zu vereinfachen, indem ich tar selbst das Entfernen erledigen lasse.
Stellen Sie sich zum Beispiel ein Backup-Skript vor, in dem das zu sichernde Verzeichnis (also tar) als Shell-Variable enthalten ist. Wenn der Wert dieser Shell-Variablen falsch eingegeben wurde, ist es möglich, dass das Ergebnis gelöschte Dateien aus dem Verzeichnis sind, in dem Sie sich zuletzt befunden haben.