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ư gzipbzip2lziplzmalzopxzvà 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 file1file2file3, 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.gzhoặ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 bzip2thuậ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 -vtù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/filesthư 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 tarkho 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 .

5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments