Ich versuche, tar
eine Sammlung von Dateien in einem Verzeichnis namens "Mein_Verzeichnis" zu erstellen und die Originale mit dem folgenden Befehl zu entfernen:
tar -cvf files.tar my_directory --remove-files
Es werden jedoch nur die einzelnen Dateien im Verzeichnis entfernt und nicht das Verzeichnis selbst (was ich im Befehl angegeben habe). Was vermisse ich hier?
BEARBEITEN:
Ja, ich nehme an, die Option 'Dateien entfernen' ist ziemlich wörtlich. Obwohl ich auch die Manpage in diesem Punkt unklar fand. (Unter Linux neige ich dazu, nicht wirklich viel zwischen Verzeichnissen und Dateien zu unterscheiden und vergesse manchmal, dass sie nicht dasselbe sind). Es sieht so aus, als würde der Konsens darin bestehen, keine Verzeichnisse zu entfernen.
Mein wichtigster Anlass, diese Frage zu stellen, ist jedoch der Umgang von tar mit absoluten Pfaden. Da Sie einen relativen Pfad zu einer oder mehreren zu komprimierenden Dateien angeben müssen, müssen Sie in das übergeordnete Verzeichnis wechseln, um sie ordnungsgemäß zu tarieren. Wie ich sehe, ist es in dieser Situation potenziell gefährlich, einen 'rm'-Folgebefehl zu verwenden. Daher hoffte ich, die Dinge zu vereinfachen, indem ich Teer dazu brachte, das Entfernen selbst durchzuführen.
Stellen Sie sich beispielsweise ein Sicherungsskript vor, in dem das zu sichernde Verzeichnis (z. B. tar) als Shell-Variable enthalten ist. Wenn dieser Shell-Variablenwert falsch eingegeben wurde, können möglicherweise Dateien aus dem Verzeichnis gelöscht werden, in dem Sie sich zuletzt befanden.