Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ
Trang Chủ Giới Thiệu Chương Trình Học Tài Liệu Lịch Khai Giảng Học Phí Việc Làm Lộ trình học

Go Back   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ > CISCO - LINUX - CEH - VIRTUALIZATION - DRAYTEK TECHNOLOGY - WATCHGUARD > [ LINUX ] Thảo luận chung
Đăng Ký Thành Viên Thành Viên Lịch Ðánh Dấu Ðã Ðọc


[ LINUX ] Thảo luận chung Trao đổi các vấn đề chung liên quan đến môn học Linux
Người Quản Trị : Đỗ Quang Ngọc

Vui lòng gõ từ khóa liên quan đến vấn đề bạn quan tâm vào khung dưới , trước khi đặt câu hỏi mới.


Trả lời
 
Ðiều Chỉnh
  #1  
Old 08-07-2010, 16:46
luckyluke113 luckyluke113 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Sep 2008
Bài gởi: 50
Thanks: 7
Thanked 16 Times in 8 Posts
Lightbulb Cơ bản về lệnh Tar trên Linux

Trước tiên ta cần biết lệnh Tar là gì :
tar (Tape ARchive) là công cụ được sử dụng để gom 1 nhóm file(s) (folder là 1 loại file đặc biệt) thành 1 file duy nhất - file này được gọi là archive, hoặc để bung (xả) các file trong archive. Người dùng Linux thì chắc chắn phải biết dùng lệnh Tar. Trong bài này mình sẽ trình bày 1 vài option thông dụng của lệnh tar, và mỗi option sẽ có đi kèm với ví dụ cụ thể.

Những điều cần lưu ý :
(Có thể mới vào đọc chưa hiểu gì, cứ biết vậy trước đã, đọc các ví dụ bên dưới rồi sẽ hiểu các lưu ý này)
_ Khi thao tác với file lưu trữ (archive) thì bắt buộc phải có option -f
_ Mặc định trong file lưu trữ không chứa đường dẫn tuyệt đối , nên sẽ tự động bỏ dấu “/” ở đầu mỗi tên file
Removing leading `/' from member names
Nếu muốn giữ địa chỉ tuyệt đối thì thêm option –P . Khi giải nén nếu có –P thì sẽ giải nén theo địa chỉ tuyệt đối , nếu không có thì sẽ giải nén theo địa chỉ tương đối
_Khi tạo file lưu trữ mới trùng tên thì chương trình sẽ tự động overwrite file lưu trữ cũ mà không cần hỏi , để không overwrite thì thêm option –k . Thêm option –r thì các file mới sẽ được ghi thêm vào cuối file lưu trữ cũ. Thêm option --backup để tạo file dự phòng file lưu trữ cũ khi có overwrite _ Mặc định tar sẽ lưu trữ đệ quy vào sâu bên trong các thư mục con , để không đệ quy thì thêm option --no-recursion(tùy phiên bản , có hoặc không) , ngược lại thêm option --recursion
_ Mặc định lệnh tar sẽ giữ nguyên permission của các file (nghĩa là không cần option –p) , nếu muốn thay đổi permission thì thêm option --no-same-permissions


Cơ bản về lệnh Tar

Đầu tiên là phải biết ý nghĩa 1 vài ký tự trong câu lệnh trước đã

-> dấu "/" : current directory, đang đứng ở root directory / (giống như C:/ bên Windows vậy)
-> dấu "#" : đang thực thi với quyền root (tương tự Administrator bên Windows)
-> lệnh "ls" : list - liệt kê các file/folder tại thư mục hiện hành (tương tự lệnh dir bên Windows)

*** tạo file lưu trữ-c
# tar –cf home.tar home
-> tạo file home.tar chứa toàn bộ thư mục homes

*** tạo file lưu trữ với nhiều đối số
# tar –cf abc.tar home root etc error.log
-> tạo file lưu trữ abc.tar với các đối số là thư mục home , etc , root và file error.log

*** tạo file lưu trữ chỉ lấy các đối số nằm trên current directory


-> lệnh "ls -R" : liệt kê tất cả các file từ folder cha đến con (-R : recursion - đệ quy)
Ở thư mục hiện hành có các file là a, b, c và folder A, B, C. Trong folder A có file d, e, f và folder D


-> dấu "*" : tất cả
-> option --no-recursion : không đệ quy
-> tar -tf test.tar : xem nội dung file test.tar vừa tạo ở trên. Kết quả xuất ra màn hình cho biết file test.tar chứa file a, b, c và 3 folder rỗng là A, B, C

*** bung (extract) file lưu trữ -x
# tar –xf home.tar

-> extract file home.tar tại current directory
# tar –xvf home.tar
–C /test
-> extract file home.tar vào thư mục /test , thêm –v để xem quá trình extract


*** extract 1 file cụ thể

extract file a
# tar –xf test.tar a
(file nào cần extract thì phải ghi đúng đường dẫn trong file lưu trữ)

*** extract từ vị trí 1 file cụ thể đến file cuối cùng -K

-> option -tjf : xem file nén định dạng bz2 (bunzip2, sẽ trình bày bên dưới). Trong file test.bz2 có 5 file a b c d e. Ta sẽ extract từ file c đến hết. Kết quả ta sẽ có file c d e

Khi create/extract lượng dữ liệu lớn , nếu ta không thể theo dõi hết quá trình thực hiện và có thể sẽ có một vài lỗi nào đó xảy ra thì nên ghi lại những thông báo lỗi vào file log bằng cách thêm dòng lệnh 2>> <filelog> vào cuối câu lệnh.
# tar –xf test.tar 2>> error.log


*** xem cả permission trong file archive –v

Xét folder C cụ thể : permission của nó là : drwxr-xr-x
ký tự d ở đầu thông báo C là Directory (Folder)
9 ký tự còn lại sẽ chia làm 3 nhóm : rwx r-x r-x
-> chủ nhân (người tạo file/folder) có quyền đọc (read), ghi (write) và thực thi (execute)
-> những user cùng group có quyền r-x : read và excute, không có quyền write
-> others cũng chỉ có quyền read và execute

*** tạo file lưu trữ “có chọn lọc” --exclude=<pattern>

-> thư mục hiện hành có file a b c và folder D
-> tạo file test.tar chứa tất cả các file/folder tại thư mục hiện hành, ngoại trừ file a và folder D

*** thêm file vào trong file lưu trữ -r (hoặc –u)



(nếu tiếp tục thêm file x vào test.tar thì chương trình vẫn gắn vào cuối file test.tar , khi extract thì sẽ lấy file cuối cùng vì các file trước đã bị overwrite)
Option –u : chỉ thêm vào nếu file đó mới hơn file đã tồn tại trong file lưu trữ


*** “nối” 2 file lưu trữ với nhau –A


1 lần chỉ nối được 2 file

*** xóa file trong file lưu trữ --delete



*** nén/giải nén với gzip –z và bzip2 -j

-> lệnh "ls -li" : liệt kê file/folder trong thư mục hiện hành 1 cách chi tiết , ở đây nói đến nén thì ta chỉ cần quan tâm đến cột dung lượng (cột ở giữa chữ root và chữ Dec), đơn vị là byte

Quá trình giải nén (thay –c bằng –x , có thể thêm –v để xem quá trình giải nén , dùng option nén nào (ở đây là –z) thì giải nén –x , hoặc xem nội dung file –t cũng phải có option đó)

Bzip2 –j cũng tương tự gzip , bzip2 tỉ lệ nén cao hơn gzip
(nên đặt đuôi file theo đúng chuẩn để khi giải nén còn biết dùng option nào)


*** so sánh các file trong file lưu trữ với các file bên ngoài –d
Trong file test.bz2 có 5 file là a b c d e , bên ngoài có file c d e (file c bên ngoài đã được thay đổi nội dung so với file c bên trong file nén)

-> so sánh các file trong file nén test.bz2 với các file a b c d e f tại thư mục hiện hành. Kết quả :
file a và b tại thư mục hiện hành không tồn tại
file c có sự thay đổi
file d và e không có gì thay đổi

-------------------------------------------

Phần sau mình sẽ giới thiệu các option giúp cho việc backup/restore dữ liệu với lệnh Tar
Trả Lời Với Trích Dẫn
Những người sau đây đã gửi lời cảm ơn luckyluke113 vì bài viết hữu ích này:
Trả lời

Bookmarks

Ðiều Chỉnh

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Tổng hợp 1 Kho Ebook Về Tin Học dành cho bạn (Phần 1) techgle Tài Liệu Học Tập 13 11-11-2010 15:20
[Discuss] CÁch hack wifi web key duoctran2001 CEH 19 12-09-2010 10:53
[Help] Help me toanminhtran48 Những Vấn Đề Khác 11 24-03-2010 19:11



Múi giờ GMT +7. Hiện tại là 15:12
Powered by: vBulletin Version 3.8.7
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Ad Management by RedTyger