Tôi muốn sử dụng stdin / stdout trên một dòng duy nhất để hiển thị phiên bản từ một tệp trong kho lưu trữ .tar.bz2 mà không ảnh hưởng đến kho lưu trữ hiện có hoặc để lại bất kỳ tệp tạm thời nào. Các tập tin chỉ có một dòng chứa phiên bản.
Các lệnh này hoạt động nhưng chúng để lại các tệp tạm thời:
cp /storage/archive.tar.bz2 /tmp/
bunzip2 /tmp/archive.tar.bz2
tar -C /tmp -xvf /tmp/archive.tar dir1/dir2/file
cat /tmp/dir1/dir2/file | grep version
Phiên bản busybox tôi đang sử dụng có bộ lệnh bị hạn chế:
# bunzip2 --help
BusyBox v1.23.2 (2017-08-22 01:34:50 UTC) multi-call binary.
Usage: bunzip2 [-cf] [FILE]...
Decompress FILEs (or stdin)
-c Write to stdout
-f Force
# tar -h
BusyBox v1.23.2 (2017-08-22 01:34:50 UTC) multi-call binary.
Usage: tar -[cxtzhvO] [-X FILE] [-T FILE] [-f TARFILE] [-C DIR] [FILE]...
Create, extract, or list files from a tar file
Operation:
c Create
x Extract
t List
f Name of TARFILE ('-' for stdin/out)
C Change to DIR before operation
v Verbose
z (De)compress using gzip
O Extract to stdout
h Follow symlinks
X File with names to exclude
T File with names to include
-
(stdin)? Tôi đang gặp vấn đề lớn ở nơi khác.