J'ai reçu une distribution de logiciels Unix sous forme de fichier cpio compressé. Quelle est la meilleure commande pour extraire les fichiers?
J'ai reçu une distribution de logiciels Unix sous forme de fichier cpio compressé. Quelle est la meilleure commande pour extraire les fichiers?
Réponses:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Bien que ce soit une vieille question, elle apparaît très haut sur Google, donc j'ai pensé que je pourrais la mettre à jour. Je suis d'accord avec la réponse acceptée en général, mais vous devez ajouter "--no-absolute-filenames" sauf si vous avez l'intention d'écraser des fichiers système importants sur votre machine. Personnellement, je préfère "zcat" à "gzip -cd" ou "gunzip -c".
Enfin, notez que vous devez exécuter cpio en tant que root (par exemple sudo) si vous extrayez un système de fichiers racine qui contient des nœuds de périphérique.
Cette page Wikipédia contient de cpio
bonnes notes.
Pour plus de détails, reportez-vous au cpio
manuel .
Un lien de la même page Wikipedia discute de la comparaison avec les tar
archives .
Et, voici un exemple d' utilisation cpio
avec le tar
format .
Par exemple, pour extraire le contenu archivé de / etc / httpd / dans le répertoire courant, en créant des sous-répertoires ./etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
La réponse acceptée et celle de Matt m'ont toutes deux été utiles, mais j'ai été perplexe pendant un certain temps en raison de trois détails:
--no-absolute-filenames
doit précéder le motif sur la ligne de commande/
des noms de fichiers, le modèle de correspondance doit également omettre le premier/
man cpio
vous vu ce que vous avez vu?