Das von Ihnen gesetzte Flag -j (Junk Paths) macht das, was Sie wollen, zunichte, da es die Ordnerpfade entfernt. Davon abgesehen sehe ich jedoch keinen Weg, nur second + zu machen. Von der Manpage:
Möglicherweise möchten Sie ein Zip-Archiv erstellen, das die Dateien in foo enthält, ohne den Verzeichnisnamen foo aufzuzeichnen. Sie können die Option -j verwenden, um die Pfade
wegzulassen , wie in: zip -j foo foo / *
Soweit ich das beurteilen kann, funktioniert es in "zip" genau so (nichts in dem Mann deutet etwas anderes an).
Edit: Ich war ein bisschen hinter dem anderen her, als ich versuchte herauszufinden, wie man das macht, was man will.
Warum navigierst du nicht einfach zum Verzeichnis und komprimierst es? Wenn Sie dorthin zurückkehren möchten, wo Sie sich befanden, ist dies eine Zeitverschwendung.
cd first_folder / second_folder / && zip -r name ./ && mv name.zip $ {here} && cd -
Die -jOption ist verfügbar, da ich nicht möchte, dass die Zip den vollständigen Pfad speichert. Ich möchte, dass es nur beginnend mit den Dateien in gespeichert wird second_folder. Ich denke, Ihr Vorschlag zur Navigation in das Verzeichnis funktioniert. Gibt es eine Möglichkeit, ohne zu navigieren?
Mika H.
@nerdwaller Sie können nur tun cd -, um zum alten pwd
Karthik T
@KarthikT Vorausgesetzt, Sie beginnen um ~ / obwohl ...
Nerdwaller
Ja, aber die Option -j entfernt den Dateipfad, sodass Sie in jedem der 15 tiefen Ordner ein Element haben könnten, und beim Extrahieren würden Sie 15 Elemente in einem Verzeichnis haben ... Ich sehe keines ohne zu navigieren An diesem Punkt.
Nerdwaller
1
@nerdwaller ich glaube du bist missverstanden cd und cd -hier. cd -kehrt Sie genau zu Ihrer hier Variablen zurück
-j
--junk-paths
Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory).
-j
Option ist verfügbar, da ich nicht möchte, dass die Zip den vollständigen Pfad speichert. Ich möchte, dass es nur beginnend mit den Dateien in gespeichert wirdsecond_folder
. Ich denke, Ihr Vorschlag zur Navigation in das Verzeichnis funktioniert. Gibt es eine Möglichkeit, ohne zu navigieren?cd -
, um zum alten pwdcd
undcd -
hier.cd -
kehrt Sie genau zu Ihrer hier Variablen zurückVon der Manpage für zip
-j --junk-paths Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory).
Nur das -j entfernen sollte das Problem beheben.
quelle
second_folder
.cd ..../second_folder && zip -r * && cd -
:) Lassen Sie mich sehen, ob eine elegantere Option vorhanden ist