J'ai besoin de créer un zip avec la commande
Zip /dir/to/file/newZip /data/to/Zip/data.txt
Cela fonctionne, mais le fichier Zip créé crée une structure de répertoire imitant le répertoire du fichier brut. Il y a beaucoup de dossiers supplémentaires dont je n'ai pas besoin.
Je n'ai pas trouvé de réponse en un coup d'œil rapide sur la page de manuel ou une recherche sur Google.
Vous pouvez utiliser -j
.
-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).
Utilisez l'option -j
:
-j 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 path).
L'utilisation de -j
ne fonctionnera pas avec l'option -r
.
La solution peut donc être la suivante:
cd path/to/parent/dir/;
Zip -r complete/path/to/name.Zip ./* ;
cd -;
Ou version en ligne
cd path/to/parent/dir/ && Zip -r complete/path/to/name.Zip ./* && cd -
vous pouvez diriger la sortie vers /dev/null
si vous ne voulez pas que la sortie cd -
apparaisse à l'écran
Un peu lié - je cherchais une solution pour faire de même pour les annuaires. Malheureusement, l'option -j ne fonctionne pas pour cela :(
Voici une bonne solution sur la façon de le faire: https://superuser.com/questions/119649/avoid-unwanted-path-in-Zip-file
Vous pouvez également créer un lien symbolique temporaire vers votre fichier:
ln -s /data/to/Zip/data.txt data.txt
Zip /dir/to/file/newZip !$
rm !$
Cela fonctionne aussi pour un répertoire.
utilisez simplement l'option -jrm pour supprimer les structures de fichiers et de répertoires
Zip -jrm /path/to/file.Zip /path/to/file