Ich habe eine Liste von Verzeichnissen, die ich archivieren möchte. Aber manchmal existieren sie nicht alle.
Ich möchte in der Lage sein, ein Archiv zu erstellen, indem ich eine Liste von Verzeichnissen bereitstelle. Dabei werden nur die vorhandenen archiviert und fehlende Verzeichnisse ignoriert. (sollte aber trotzdem fehlschlagen, wenn keine Verzeichnisse vorhanden sind)
Dies ist nützlich für mich, da ich eine kontinuierliche Integration durchführe und einige der Prozesse bestimmte Artefakte erstellen, die ich für die Zukunft in einem Archiv behalten möchte. Ich kenne alle möglichen Pfade, die erstellt werden können, bin mir aber nicht immer sicher, welche erstellt werden.
Angenommen, die möglichen Pfade sind: here_is_a_dir
here_is_another_one
yet_another_dir
Normalerweise erstelle ich das Archiv mit dem folgenden Befehl:
tar -czf archive.tgz here_is_a_dir here_is_another_one yet_another_dir
Was natürlich fehlschlägt, wenn eines der Verzeichnisse fehlt.
Im Idealfall sollte es sich um einen einfachen Befehl handeln, für den kein Skript erforderlich ist. (Insbesondere ist nur in meiner Umgebung sh
verfügbar, daher kann ich keine ausgefallenen Shells wie bash
oder andere verwenden, aber das ist spezifisch für meine Umgebung und könnte sich in Zukunft ändern. Antworten mit anderen Shells sind wahrscheinlich auch gut, denke ich. )
sh
steht mir momentan zur Verfügung. Dies ist jedoch eine Einschränkung, die sich nur auf meine spezifische Situation auswirkt. Antworten mit anderen Shells sind meiner Meinung nach immer noch gute Antworten.
cpio
.