Tar --exclude

Bonjour,
je voudrai sauvegarder une partie de mes donner mes je n’arrive pas a exclur un dossier.

Voici ce que j’utilise.
tar -vcf ‘/media/sav/test.tar’ ‘/media/ludo/Mes documents/Mes Documents/Automate’ --exclude=’/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier’

il me retourne aucune ereur mes j’ai tout et je voudrer excure le dossier “Nouveau dossier”.
merci de votre aide.

Bonjour Ludo_tt

Effectivement, en faisant un copié/collé de ta ligne de commande,
ça ne fonctionne pas parce que tu utilises les caractères

MODIFIER LETTER TURNED COMMA (U+02BB)
et
MODIFIER LETTER APOSTROPHE (U+02BC)

à la place des caractères APOSTROPHE (U+0027)

et d’ailleurs, tu aurais pu utiliser les caractères QUOTATION MARK (U+0022)

On peut mieux s’en rendre compte en “zoomant” (Ctrl+molette) sur ton message.


N’oublie pas de donner aussi le message d’erreur retourné par une commande,
ça aide beaucoup.

EDIT : J’utilise l’ancienne version de tar et de debian

(je précise que sur ma machine, j’ai pris soin de créer et rendre accessibles les répertoires et fichiers de tests afin que les lignes de commande citées dans mon messages puissent s’exécuter)

michel@debg53sw:~$ tar -vcf ‘/media/sav/test.tar’ ‘/media/ludo/Mes documents/Mes Documents/Automate’ --exclude=’/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier’
tar: ‘/media/sav/test.tar’ : open impossible: Aucun fichier ou dossier de ce type
tar: Error is not recoverable: exiting now
michel@debg53sw:~$ 

Et méfie-toi des copiés/collés depuis certaines pages web
dans lesquelles les caractères originaux ont été malheureusement interprétés…


Les 3 lignes de commande suivantes ont très bien fonctionné, tout en excluant de l’archivage le répertoire /media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier

  • Sans apostrophes :
tar -vcf /media/sav/test.tar /media/ludo/Mes\ documents/Mes\ Documents/Automate --exclude=/media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier
  • Avec des apostrophes (U+0027):
tar -vcf /media/sav/test.tar '/media/ludo/Mes documents/Mes Documents/Automate' --exclude='/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier'
  • Avec double-guillemets (U+0022):
tar -vcf /media/sav/test.tar "/media/ludo/Mes documents/Mes Documents/Automate" --exclude="/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier"

meme resultat

~% tar -vcf /media/sav/test.tar /media/ludo/Mes\ documents/Mes\ Documents/Automate --
exclude=/media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier

tar: Suppression de « / » au début des noms des membres
/media/ludo/Mes documents/Mes Documents/Automate/
/media/ludo/Mes documents/Mes Documents/Automate/Chema pc maison.png
/media/ludo/Mes documents/Mes Documents/Automate/DEFAULT.DFR
/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier/
/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier/Nouveau fichier vide
/media/ludo/Mes documents/Mes Documents/Automate/Test.pro

Avant de te proposer ces lignes de commande,
je les avais testées comme je viens de le refaire ci-dessous :

michel@debg53sw:~$ su -c "mkdir -p /media/sav /media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier"
Mot de passe : 
michel@debg53sw:~$ su -c "chown -R michel:michel /media/sav /media/ludo"
Mot de passe : 
michel@debg53sw:~$ su -c "touch /media/ludo/Mes\ documents/Mes\ Documents/Automate/fichAarchiver.txt /media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier/NePasArchiver.txt"
Mot de passe : 
michel@debg53sw:~$ 

D’ailleurs, pour la dernière commande du bloc ci-dessus,
je n’avais pas besoin d’utiliser les privilèges du compte root,
mais bon, la démo qui suit fonctionne aussi bien…

michel@debg53sw:~$ ls -lR /media/sav /media/ludo/Mes\ documents/Mes\ Documents/Automate
/media/ludo/Mes documents/Mes Documents/Automate:
total 4
-rw-r--r-- 1 root   root      0 mars  17 21:05 fichAarchiver.txt
drwxr-xr-x 2 michel michel 4096 mars  17 21:05 Nouveau dossier

/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier:
total 0
-rw-r--r-- 1 root root 0 mars  17 21:05 NePasArchiver.txt

/media/sav:
total 0
michel@debg53sw:~$ 
michel@debg53sw:~$ tar -vcf /media/sav/test.tar /media/ludo/Mes\ documents/Mes\ Documents/Automate --exclude=/media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier
tar: Suppression de « / » au début des noms des membres
/media/ludo/Mes documents/Mes Documents/Automate/
/media/ludo/Mes documents/Mes Documents/Automate/fichAarchiver.txt
michel@debg53sw:~$ 
michel@debg53sw:~$ tar tvf /media/sav/test.tar
drwxr-xr-x michel/michel     0 2018-03-17 21:05 media/ludo/Mes documents/Mes Documents/Automate/
-rw-r--r-- root/root         0 2018-03-17 21:05 media/ludo/Mes documents/Mes Documents/Automate/fichAarchiver.txt
michel@debg53sw:~$ 

Bien sûr, la ligne de commande à lancer est sur une seule ligne,
comme ci-dessous :

tar -vcf /media/sav/test.tar /media/ludo/Mes\ documents/Mes\ Documents/Automate --exclude=/media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier

Sinon, je n’ai aucune idée de ce qui pourrait empêcher tar de prendre en compte l’option exclude de ta ligne de commande.

Merci d’avoire éseiller de m’aider.

Ou alors, c’est peut-être que le caractère espace qui sépare les mots Nouveau dossier n’est pas un “vrai” caractère espace ASCII (U+0020) comme par exemple, dans la phrase ci-dessus
dans laquelle j’ai utilisé le caractère U+2007 au lieu du caractère espace U+0020 comme ci-dessous
Nouveau dossier


Que retournent les lignes de commande suivantes ?

lsb_release -a
uname -a
tar --version
ls -l /media/ludo/Mes\ documents/Mes\ Documents/Automate | hd
~% lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.3 (stretch)
Release:        9.3
Codename:       stretch
~% 
~% uname -a
Linux salon 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
~% 
~% tar --version
tar (GNU tar) 1.29
Copyright © 2015 Free Software Foundation, Inc.
Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>
Ceci est un logiciel libre : vous êtes libre de le modifier et de le redistribuer.
Il est fourni SANS GARANTIE, dans la mesure de ce que permet la loi.

Écrit par John Gilmore et Jay Fenlason.
~% 
~% ls -l /media/ludo/Mes\ documents/Mes\ Documents/Automate | hd
00000000  74 6f 74 61 6c 20 34 31  0a 2d 72 77 78 72 77 78  |total 41.-rwxrwx|
00000010  72 77 78 20 31 20 72 6f  6f 74 20 72 6f 6f 74 20  |rwx 1 root root |
00000020  20 39 38 38 37 20 6e 6f  76 2e 20 20 20 36 20 20  | 9887 nov.   6  |
00000030  32 30 31 35 20 43 68 65  6d 61 20 70 63 20 6d 61  |2015 Chema pc ma|
00000040  69 73 6f 6e 2e 70 6e 67  0a 2d 72 77 78 72 77 78  |ison.png.-rwxrwx|
00000050  72 77 78 20 31 20 72 6f  6f 74 20 72 6f 6f 74 20  |rwx 1 root root |
00000060  20 20 34 34 39 20 6e 6f  76 2e 20 20 20 36 20 20  |  449 nov.   6  |
00000070  32 30 31 35 20 44 45 46  41 55 4c 54 2e 44 46 52  |2015 DEFAULT.DFR|
00000080  0a 64 72 77 78 72 77 78  72 77 78 20 31 20 72 6f  |.drwxrwxrwx 1 ro|
00000090  6f 74 20 72 6f 6f 74 20  20 20 20 20 30 20 6d 61  |ot root     0 ma|
000000a0  72 73 20 20 31 34 20 32  30 3a 31 36 20 4e 6f 75  |rs  14 20:16 Nou|
000000b0  76 65 61 75 20 64 6f 73  73 69 65 72 0a 2d 72 77  |veau dossier.-rw|
000000c0  78 72 77 78 72 77 78 20  31 20 72 6f 6f 74 20 72  |xrwxrwx 1 root r|
000000d0  6f 6f 74 20 32 37 31 31  32 20 6e 6f 76 2e 20 20  |oot 27112 nov.  |
000000e0  20 36 20 20 32 30 31 35  20 54 65 73 74 2e 70 72  | 6  2015 Test.pr|
000000f0  6f 0a                                             |o.|
000000f2
~% 

Merci pour ton retour de commande.

Je me suis permis de remettre en forme les blocs de texte de ton message.


J’utilisais la version 1.27 de tar avec debian 8.10
Tu utilises la version 1.29 de tar avec debian 9.3

Avec la même version de tar et en utilisant debian 9.3,
j’ai retrouvé le même problème que tu avais rencontré : l’option exclude n’a pas fonctionné.


Il fallait simplement spécifier l’option exclude (avec le nom du répertoire a exclure)
avant le nom du répertoire à sauvegarder,
comme dans les lignes de commande ci-dessous :

tar -vcf /media/sav/test.tar --exclude=/media/ludo/Mes\ documents/Mes\ Documents/Automate/Nouveau\ dossier  /media/ludo/Mes\ documents/Mes\ Documents/Automate
tar -vcf /media/sav/test.tar --exclude="/media/ludo/Mes documents/Mes Documents/Automate/Nouveau dossier"  "/media/ludo/Mes documents/Mes Documents/Automate"

Merci, ça marche nickel