Zip-Archiv erstellen, Sonderfälle


1

Wie kann ich in einer Linux Distribution eine Zip erstellen und
- Behalten Sie nur den relativen Pfad zu einem Ordner
- Legen Sie einige Dateien in einem separaten Ordner in der Zip

Ich muss dies in einem Bash-Skript tun. Wenn ich also nur den absoluten Pfad verwende, befindet sich der gesamte Pfad im Zip.

Beispiel

/home/user/folder/1.txt
/home/user/folder/2.txt

Ausgang brauchen es:

test.zip
folder/1.txt
folder/secondfolder/2.txt

1
In welcher Beziehung steht die Ausgabe zum Beispiel?
Ignacio Vazquez-Abrams

Könnte dies besser für ServerFault geeignet sein? Es scheint mir eher eine Sysadmin-Frage als eine Programmierfrage zu sein.
ssokolow

Antworten:



0

Tut find . ! -name "*.zip" -type f -print | zip test -@ Tun Sie, was Sie wollen?


zip ist in der Lage, einen Pfad für sich zu rekursieren.
Ignacio Vazquez-Abrams

Ich habe die Frage aktualisiert. Das brauche ich nicht.
danidacar

@Nutzer, Ich habe die Frage aktualisiert - "need it" hinzuzufügen ist kaum ein Update! (Bitte kommen Sie auch mit einem besseren Titel?)
Arjan

@Ignacio und Charles, also vielleicht zip -r -x *.zip würde das gleiche erreichen?
Arjan

0

Warum erstellen Sie nicht einfach die gewünschte Verzeichnisstruktur, komprimieren sie und entfernen sie dann?

cd ~/
mkdir backup1
cp /var/www/test/* backup1/
zip -r output.zip ~/backup1
rm -r backup1

Weil ich an Befehlszeilenflexibilität gewöhnt bin und dachte, ich vermisse etwas. Guter Tipp.
danidacar

Mit man zip können Sie anscheinend keine Verzeichnisse erstellen. Wenn Sie in einer Zeile tun möchten; Nur cp / var / www / test / * backup1 / & amp; & amp; zip -rm output.zip backup1 / (m für das Verschieben der Dateien) Teil muss nicht Feature-Bloat haben; Es gibt keinen wirklichen Grund dafür, dass zip Dateien / Verzeichnisse erstellt, die nicht existieren, wenn Sie dies mit anderen Befehlen problemlos tun können.

0

$ ln -s / var / www / test backup1
$ zip -r backup1 -j backup1 / *

Akzeptabel?


Sie verschrotten die Verzeichnisse und erstellen dabei einen neuen Sim-Link. Ich denke nicht, dass dies optimal ist. Trotzdem danke.
danidacar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.