Un client télécharge des fichiers sur un serveur de développement. Lorsque le moment est venu de télécharger le projet sur un serveur de production, ces fichiers ne sont plus nécessaires et nous souhaitons les exclure du fichier tar qui sera éventuellement passé à la production. Cependant, nous souhaitons toujours garder le répertoire intact, ce ne sont que les fichiers inutiles
En utilisant Ubuntu 16 et tar 1.28, nous avons essayé:
tar -vczf archive.tar.gz . --exclude=wp-content/uploads/wpallimport/files/*
tar: Cowardly refusing to create an empty archive
Nous avons également essayé de placer un paramètre exclude = entre des citations simples et doubles, sans succès.
tar -vczf archive.tar.gz . --exclude='wp-content/uploads/wpallimport/files/*'
tar: Cowardly refusing to create an empty archive
Le site officiel montre --exclude sans signe égal
tar -vczf file.tar.gz --exclude 'directory/*' .
et donne la même erreur.
Comment est-ce fait?
Le type habituel avec l'option --exclude
de tar
name __ est qu'il est par rapport à l'argument de répertoire p. Ex. donné
$ tree dir
dir
└── subdir
└── subsubdir
├── file1
├── file2
└── file3
2 directories, 3 files
puis
$ tar cvf dir.tar.gz --exclude='/dir/subdir/subsubdir/*' dir
dir/
dir/subdir/
dir/subdir/subsubdir/
dir/subdir/subsubdir/file1
dir/subdir/subsubdir/file2
dir/subdir/subsubdir/file3
ne parvient pas à exclure le contenu de subsubdir
(il tente d'exclure dir/dir/subdir/subsubdir/*
, ce qui ne correspond à rien); ce que tu veux c'est
$ tar cvf dir.tar.gz --exclude='subdir/subsubdir/*' dir
dir/
dir/subdir/
dir/subdir/subsubdir/
Autant que je sache, l'ordre n'a pas d'importance, sauf que le fichier de sortie doit immédiatement suivre l'option f
name__.
Disons que vous avez un répertoire nommé "top-dir" avec les sous-dossiers "dir/subdir". Si vous souhaitez exclure le contenu d'un répertoire "dir/subdir" mais pas le répertoire lui-même, la ligne de commande qui fonctionne réellement est tar -zcp --exclude='dir/subdir/*' -f archive.tgz top-dir
.
Vous devez utiliser le commutateur -f
après le --exclude
et avant le nom du fichier d’archive.