Tham số -f làm gì trong lệnh tar


19

Khi sử dụng tartôi luôn bao gồm -ftrong các tham số nhưng tôi không biết tại sao.

Tôi nhìn người đàn ông và nó nói;

-f, --file [HOSTNAME:]F

use archive file or device F (default
"-", meaning stdin/stdout)

Nhưng thành thật mà nói tôi không biết điều đó có nghĩa là gì. Bất cứ ai có thể làm sáng tỏ về nó?

Câu trả lời:


20

Các -ftùy chọn nói tarrằng đối số tiếp theo là tên tập tin của các kho lưu trữ, hoặc đầu ra tiêu chuẩn nếu nó là -.


A, chúc mừng! Tôi đoán rằng tên tập tin sẽ phải xuất hiện tiếp theo vì vậy điều này -f đã làm một cái gì đó đặc biệt hơn!
Toby

6
@Toby: Tôi nghi ngờ đây là vì lý do lịch sử. "tar" là viết tắt của "lưu trữ băng" và có lẽ các phiên bản gốc không hình dung mọi người sử dụng các tệp đĩa để lưu trữ thường xuyên.
David Thornley

8

Kha đơn gảin. Nếu bạn bỏ qua -ftham số, đầu ra được chuyển đến thiết bị xuất chuẩn:

gammy@denice:/tmp/demo$ tar -c a b c
a0000644000175000017500000000000011435437117010223 0ustar  gammygammyb0000644000175000017500000000000011435437117010224 0ustar  gammygammyc0000644000175000017500000000000011435437117010225 0ustar  gammygammygammy@denice:/tmp/demo$ ls
a  b  c
gammy@denice:/tmp/demo$ 

... Thật là một mớ hỗn độn!

Tham -fsố (như bạn đã trích dẫn) mong muốn một tên tệp (và tùy chọn là tên máy chủ), do đó, đối số đầu tiên sau nó là tên tệp đầu ra:

gammy@denice:/tmp/demo$ tar -cf output.tar a b c
gammy@denice:/tmp/demo$ ls
a  b  c  output.tar
gammy@denice:/tmp/demo$ 

5
> Nếu bạn áp dụng tham số -f, đầu ra được chuyển đến thiết bị xuất chuẩn . Điều này đúng với GNU tar, nhưng tôi nhớ rằng trên Solaris mặc định là một thiết bị băng ( /dev/rmt0hoặc một cái gì đó như thế này).
Cristian Ciupitu

* bỏ qua (không phải "áp bức")
Mr Ethernet

1
Ngay cả GNU cũng tartôn vinh biến không còn tài liệu TAPE. Ví dụ, thử TAPE=/tmp/tape.tar tar cv /etc/h*và sau đó ls -l /tmp/tape.tar.
roaima

2

Nó cho phép bạn chỉ định tệp hoặc thiết bị bạn sẽ làm việc với. Tạo, cập nhật hoặc trích xuất mọi thứ từ nó tùy thuộc vào các cờ được cung cấp khác. Ví dụ:

# Create a tar file with the contents of somepath/
tar -cvf filename.tar somepath/

# Extract the tar file.
tar -xvf filename.tar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.