12
votes

Zip énonçant des chemins absolus, mais ne fait que garder une partie d'eux

zip -r 1.zip /home/username/the_folder
At here, when i unzip 1.zip, it will create /home/username/the_folder, from whichever folder i am unzipping from.How do I zip, stating the full absolute paths, but make the zip only contain the folder structure starting at, in this case for instance, /home/username?That way I could be at whatever path i wanted, unzip and it would just create the_folder, and not /home/username/the_folder.

0 commentaires

4 Réponses :


6
votes

Utilisez un chemin relatif lors de la spécification du fichier à zip.

cd /home/username
zip -r 1.zip ./the_folder


1 commentaires

Il veut pouvoir utiliser un chemin absolu. S'il vous plaît noter «quel que soit le chemin que je voulais». Bien que ce que vous dites a du sens.



1
votes
  1. Liste Item Li>

    Que diriez-vous: P>

    zipExtraFolder 1.zip /home/username/the_folder
    

1 commentaires

Je ne peux pas vraiment lire ce code et cela ne causera pas de problèmes lorsque je commence à faire des commandes ZIP plus complexes?



0
votes

Il suffit d'utiliser l'option -j , fonctionne sur osx , je ne sais pas sur Linux.

zip -j -r 1.zip / home / nom d'utilisateur / the_folder


3 commentaires

Je reçois une erreur, apparemment parce qu'il y a deux instances d'un fichier portant le même nom dans ce dossier. Même s'ils sont dans différents sous-dossiers.


J'avais oublié, l'option -j n'est pas pratique lorsque vous utilisez l'option -r , car elle comprime tous les fichiers du dossier racine sans la structure de dossier.


Si -j ne fonctionne pas pour vous Checkout Cette réponse



12
votes

Utilisez cette commande:

cd path_under_folder_to_zip && \
zip -r 1.zip folder_to_zip >/dev/null && \
mv 1.zip my_current_path


2 commentaires

CD Path_under_folder_TO_ZIP && ZIP -R MY_CURrent_Path / 1.zip folder_to_zip> / dev / null


Fonctionne génial sur MacOS :) Merci.