많은 파일이 포함된 cpio 아카이브가 있는데 파일 전체가 아닌 하나의 파일만 추출하면 됩니다. tar
그냥 사용할 수도 있지만 작동 tar -xf archive.tar path/to/file
하지 않습니다 cpio
.
cpio -i < archive.cpio path/to/file
bash: path/to/file: No such file or directory
아카이브에서 개별 파일을 추출하는 방법을 아는 사람이 있습니까 cpio
?
답변1
홈 디렉토리( ) 가 존재하지 않는 경우 이 -d
옵션을 사용하여 cpio
홈 디렉토리( )를 생성 해야 합니다.path/to
cpio -id < archive.cpio path/to/file
또한 bsdtar
(FreeBSD의 기존 방식 tar
) 압축 여부에 관계없이 cpio 아카이브를 추출하는 방법을 알고 있습니다.
답변2
파이프라인에서 파일을 즉시 사용하려면 건너뛰고 -d
추가 하면 됩니다.--to--stdout
다음은 과도한 예입니다. initramfs cpio에서 실행 파일의 MD5SUM을 확인하세요.
$ objdump -sj '.init.ramfs' ./usr/initramfs_data.o | \
tail -n +5 | \
cut -b1-44 | \
xxd -r | \
gunzip | \
cpio --to-stdout -i usr/bin/mount 2>/dev/null | \
md5sum
bffe60496ce15be471e7cfc04c14fac5 -
- 16 진수
tail
덤프 전 라인 종료objdump
cut
16진수 덤프의 ASCII 부분 제거xxd -r
un-hexdumps(16진수를 2진수로)