L'archive Tar ne sera pas décompressée - "Le chemin contient '..'"

8

Le nom du fichier 2014-12-12 04-00-01.tar. J'ai exécuté la commande:

tar xvf 2014-12-12\ 04-00-01.tar

La sortie est composée de plusieurs lignes du formulaire:

x ../server/: Path contains '..'

Et puis quelques-uns de la forme:

tar: copyfile unpack (../server/logs/.DS_Store) failed: No such file or directory

Il semble que je n'ai pas fait très attention lorsque j'ai écrit le script de sauvegarde. Comment décompresser le fichier?

Thom Smith
la source

Réponses:

11

Vous voudrez ajouter le drapeau P(ou -P) à votre ligne de commande. Depuis la page de manuel:

-P Préserver les chemins d'accès. Par défaut , les noms de chemin absolus (ceux qui commencent par un caractère / ont la barre oblique principale supprimée lors de la création et de l'extraction d'archives. De plus, tar refusera d'extraire les entrées d'archive dont les noms de chemin contiennent .. ou dont le répertoire cible serait modifié par un lien symbolique: cette option supprime ces comportements.

Essayez tar Pxvf 2014-12-12\ 04-00-01.tar. Notez que vous aurez besoin d'un accès en écriture au répertoire parent du répertoire de travail où vous appelez la commande.

zackse
la source
Ça a fait l'affaire!
Thom Smith
0

Tu pourrais essayer:
mkdir ./dir
tar xvf 2014-12-12\ 04-00-01.tar -C --./dir

LDC3
la source
tar: could not chdir to '--./dir'
Thom Smith
Étrange. Essayez tar xvf 2014-12-12\ 04-00-01.tar -C --dirplutôt.
LDC3
Que signifie le double tiret?
Xen2050
C'est dans le fichier man, je pense que cela indique que les lettres qui suivent font partie de la commande puisque vous pouvez avoirtar xv -C --dir -f --2014-12-12\ 04-00-01.tar
LDC3