Lệnh tar
tạo file tar bằng cách chuyển đổi một nhóm các tập tin vào một kho lưu trữ. Nó cũng có thể trích xuất kho lưu trữ tar, hiển thị danh sách các tệp có trong kho lưu trữ, thêm các tệp bổ sung vào kho lưu trữ hiện có và nhiều loại thao tác khác.
Tar ban đầu được thiết kế để tạo các kho lưu trữ để lưu trữ các tệp trên băng từ, đó là lý do tại sao nó có tên là “ T ape AR chive”.
Bài viết này hướng dẫn cách sử dụng lệnh tar
để giải nén, liệt kê và tạo kho lưu trữ tar thông qua các ví dụ thực tế và giải thích chi tiết về các tùy chọn tar phổ biến nhất.
Cú pháp lệnh
Có hai phiên bản tar, BSD tar và GNU tar , với một số khác biệt về chức năng. Hầu hết các hệ thống Linux đều được cài đặt sẵn GNU tar theo mặc định.
Cú pháp chung cho lệnh tar
như sau:
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
OPERATION
– Chỉ một đối số hoạt động được cho phép và bắt buộc. Các hoạt động được sử dụng thường xuyên nhất là:--create
(-c
) – Tạo một kho lưu trữ tar mới.--extract
(-x
) – Giải nén toàn bộ kho lưu trữ hoặc một hoặc nhiều tệp từ kho lưu trữ.--list
(-t
) – Hiển thị danh sách các tệp có trong kho lưu trữ
OPTIONS
– Các thao tác được sử dụng thường xuyên nhất là:--verbose
(-v
) – Hiển thị các tệp đang được xử lý bằng lệnh tar.--file=archive=name
(-f archive-name
) – Chỉ định tên tệp lưu trữ.
ARCHIVE_NAME
– Tên của kho lưu trữ.FILE_NAME(s)
– Danh sách tên tệp được phân tách bằng dấu cách sẽ được trích xuất từ kho lưu trữ. Nếu không được cung cấp, toàn bộ kho lưu trữ sẽ được giải nén.
Khi thực hiện các lệnh tar, bạn có thể sử dụng dạng dài hoặc dạng ngắn của các thao tác tar
và tùy chọn. Các biểu mẫu dài dễ đọc hơn, trong khi các biểu mẫu ngắn được nhập nhanh hơn. Các tùy chọn dạng dài có tiền tố là dấu gạch ngang kép ( --
). Các tùy chọn dạng ngắn được bắt đầu bằng một dấu gạch ngang ( -
), có thể được bỏ qua.
Tạo file nén bằng Tar
Tar hỗ trợ một phạm vi rộng lớn của các chương trình nén như gzip
, bzip2
, lzip
, lzma
, lzop
, xz
và compress
. Khi tạo kho lưu trữ tar được nén, quy ước được chấp nhận là nối hậu tố máy nén vào tên tệp lưu trữ. Ví dụ: nếu một kho lưu trữ đã được nén gzip
, nó sẽ được đặt tên là archive.tar.gz.
Để tạo một kho lưu trữ tar, hãy sử dụng tùy chọn -c
theo sau -f
và tên của file nén.
Ví dụ, để tạo ra một kho lưu trữ tên archive.tar
từ các tập tin được đặt tên file1
, file2
, file3
, bạn sẽ chạy lệnh sau:
tar -cf archive.tar file1 file2 file3
Đây là lệnh tương đương bằng cách sử dụng các tùy chọn dạng dài:
tar --create --file=archive.tar file1 file2 file3
Bạn có thể tạo kho lưu trữ từ nội dung của một hoặc nhiều thư mục hoặc tệp. Theo mặc định, các thư mục được lưu trữ đệ quy trừ khi tùy chọn --no-recursion
được chỉ định.
Ví dụ sau sẽ tạo ra một file nén tên user_backup.tar
của thư mục /home/user
:
tar -cf backup.tar /home/user
Sử dụng tùy chọn -v
nếu bạn muốn xem các tệp đang được xử lý.
Tạo kho lưu trữ Tar Gz
Gzip là thuật toán phổ biến nhất để nén các tệp tar. Khi nén tệp lưu trữ tar bằng gzip, tên tệp lưu trữ phải kết thúc bằng tar.gz
hoặc tgz
.
Tùy chọn -z
cho tar để nén các kho lưu trữ bằng cách sử dụng thuật toán gzip
vì nó được tạo ra. Ví dụ: để tạo kho lưu trữ tar.gz từ các tệp nhất định, bạn sẽ chạy lệnh sau:
tar -czf archive.tar.gz file1 file2
Tạo kho lưu trữ Tar Bz2
Một thuật toán phổ biến khác để nén các tệp tar là bzip2. Khi sử dụng bzip2, tên kho lưu trữ phải kết thúc bằng tar.bz2
hoặc tbz
.
Để nén tệp lưu trữ bằng bzip2
thuật toán, hãy gọi tar
bằng tùy chọn -j
. Lệnh sau tạo một file nén tar.bz2
từ các tệp đã cho:
tar -cjf archive.tar.bz2 file1 file2
Listing Tar Archives
Khi được sử dụng với tùy chọn --list
( -t
), lệnh tar
liệt kê nội dung của một kho lưu trữ tar mà không cần giải nén nó.
Lệnh dưới đây, sẽ liệt kê nội dung của tệp archive.tar
:
tar -tf archive.tar
Output:
file1 file2 file3
Để biết thêm thông tin như chủ sở hữu tệp, kích thước tệp, timestamp , hãy sử dụng tùy chọn --verbose
( -v
):
tar -tvf archive.tar
-rw-r--r-- hocdevops/users 0 2018-09-08 01:19 file1 -rw-r--r-- hocdevops/users 0 2018-09-08 01:19 file2 -rw-r--r-- hocdevops/users 0 2018-09-08 01:19 file3
Giải nén kho lưu trữ Tar
Hầu hết các tệp lưu trữ trong Linux đều được lưu trữ và nén bằng định dạng tar hoặc tar.gz. Biết cách giải nén các tệp này từ dòng lệnh là rất quan trọng.
Để giải nén một kho lưu trữ tar, hãy sử dụng tùy chọn --extract
( -x
) theo sau là tên kho lưu trữ:
tar -xf archive.tar
Nó cũng phổ biến để thêm -v
tùy chọn để in tên của các tệp được trích xuất.
tar -xvf archive.tar
Giải nén kho lưu trữ Tar trong một thư mục khác
Theo mặc định, tar sẽ trích xuất nội dung lưu trữ trong thư mục làm việc hiện tại . Sử dụng --directory
( -C
) để giải nén các tệp lưu trữ trong một thư mục cụ thể:
Ví dụ, để giải nén nội dung lưu trữ vào /opt/files
thư mục, bạn có thể sử dụng:
tar -xf archive.tar -C /opt/files
Trích xuất kho lưu trữ Tar Gz và Tar Bz2
Khi giải nén các tệp nén như tar.gz
hoặc tar.bz2
, bạn không phải chỉ định tùy chọn giải nén. Lệnh giống như khi giải nén tar
kho lưu trữ:
tar -xf archive.tar.gz
tar -xf archive.tar.bz2
Giải nén các tệp cụ thể từ kho lưu trữ Tar
Đôi khi thay vì giải nén toàn bộ kho lưu trữ, bạn có thể chỉ cần giải nén một vài tệp từ đó.
Để giải nén (các) tệp cụ thể từ kho lưu trữ tar, hãy thêm một danh sách các tên tệp được phân tách bằng dấu cách sẽ được giải nén sau tên lưu trữ:
tar -xf archive.tar file1 file2
Khi giải nén tệp, bạn phải cung cấp tên chính xác của chúng, bao gồm cả đường dẫn, như được in bởi --list
( -t
).
Giải nén một hoặc nhiều thư mục từ kho lưu trữ cũng giống như giải nén tệp:
tar -xf archive.tar dir1 dir2
Nếu bạn cố gắng giải nén một tệp không tồn tại, một thông báo lỗi tương tự như sau sẽ được hiển thị:
tar -xf archive.tar README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Giải nén tệp từ kho lưu trữ Tar bằng ký tự đại diện
Để trích xuất tệp từ kho lưu trữ dựa trên mẫu ký tự đại diện, hãy sử dụng --wildcards
và trích dẫn mẫu để ngăn shell thông dịch nó.
Ví dụ: để trích xuất các tệp có tên kết thúc bằng .js
(tệp Javascript), bạn có thể sử dụng:
tar -xf archive.tar --wildcards '*.js'
Thêm tệp vào kho lưu trữ Tar hiện có
Để thêm tệp hoặc thư mục vào kho lưu trữ tar hiện có, hãy sử dụng thao tác --append
( -r
).
Ví dụ: để thêm một tệp có tên newfile
vào archive.tar, bạn sẽ chạy:
tar -rvf archive.tar newfile
Xóa tệp khỏi kho lưu trữ Tar
Sử dụng --delete
thao tác này để xóa tệp khỏi kho lưu trữ.
Ví dụ sau đây cho thấy cách xóa tệp file1
khỏi archive.tar,:
tar --delete -f archive.tar file1
Phần kết luận
Cách sử dụng phổ biến nhất của lệnh tar
là tạo và trích xuất một kho lưu trữ tar. Để giải nén tệp lưu trữ, hãy sử dụng lệnh tar -xf
theo sau là tên tệp lưu trữ và để tạo một quyền sử dụng mới, tar -czf
theo sau là tên tệp lưu trữ cũng như các tệp và thư mục bạn muốn thêm vào tệp lưu trữ.
Để biết thêm thông tin về lệnh tar, hãy tham khảo trang tài liệu tar của Gnu .