J'essaie de créer un fichier tar.gz en utilisant la commande suivante:
sudo tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
Il commence alors à créer des fichiers (plusieurs fichiers dans un dossier), mais j'obtiens ensuite l'erreur suivante:
tar: dvr_rdk_v1.tar.gz: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Je ne vois aucune description de cette erreur, qu'est-ce que cela signifie?
-
fait une différence, car GNU tar est bizarre. Les arguments optionnels ne peuvent pas être regroupés dans le premier argument quand il ne commence pas par un-
, l'argument tof
est donc l'argument suivanttar
, ettar vcfz dvr_rdk_v1.tar.gz
est donc équivalent àtar -v -c -f dvr_rdk_v1.tar.gz -z
.z
ouj
la compression d'archive est réussie même avec-
impliqué. Lorsque j'ajoute un trait d'union, il traite le dernier caractère de l'option comme un "fichier". En conséquence, je reçoisj
ouz
sous forme de fichier archivé si j'utilise cette option-cvfz
ou-cvfj
.L'
-f
option doit précéder directement le nom du fichier. Alors, utiliseztar -vczf filename.tar.gz
au lieu de-vcfz
la source
j
ouz
avec ces commandes-cvfj
et-cvfz
respectivement.La commande tar est historiquement l’une des rares commandes à ne pas suivre les instructions de la syntaxe de l’utilitaire Unix .
La page des normes pour tar dit:
Bien que les instructions de syntaxe incluent ceci:
Ainsi, alors que la commande que vous avez saisie,
tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
conviendrait aux anciennes versions de tar, certaines versions de tar écrites dans le strict respect des instructions de syntaxe de l'utilitaire analyseront le terme "utiliserz
comme argument de fichier-f
". Donc, vous devriez utiliser les éléments suivants pour être portable:la source
Pour créer l'archive
Cela montre la liste des fichiers et dossiers
Et pour extraire à nouveau
la source
tar
.tar
mal, bien qu'il soit agréable de mentionner au moins la différence essentielle (se diriger-f
vers la fin)z
que de mettref
à la fin, d'où mon commentaire.