5

I have a cpio archive with lots of files and I need to extract only one file, not all. With tar I could just use tar -xf archive.tar path/to/file, but that does not work with cpio:

cpio -i < archive.cpio path/to/file
bash: path/to/file: No such file or directory

Does anyone know how to extract just a single file from a cpio archive?

manifestor
  • 2,423
  • 6
  • 22
  • 47

1 Answers1

7

You should use the -d option to let cpio create the leading directories (path/to) if they don't exist:

cpio -id < archive.cpio path/to/file

Also, bsdtar (the regular tar on FreeBSD) knows how to extract cpio archives, whether compressed or not.

  • Make sure to OMIT the leading forward slash on the /path/to/file... I mean... path/to/file... or it will not work! Also, you can include more than one file with spaces in between them, just in case you want to extract TWO files. – Brain2000 Oct 22 '20 at 04:58