CC: hai số chỉ thế kỉ,
Tạo tậptin với lệnh cat
Lệnh cat tuy đơn giản nh−ng rất hữu dụng trong Linux. Chúng ta có thể sử dụng lệnh này để lấy thông tin từ đầu vào (bàn phím...) rồi kết xuất ra tập tin hoặc các nguồn khác (màn hình ...), hay để xem nội dung của một tập tin ... Phần này trình bày tác dụng của lệnh cat đối với việc tạo tập tin.
Cú pháp lệnh:
cat > <tập-tin>
Theo ngầm định, lệnh này cho phép lấy thông tin đầu vào từ bàn phím rồi xuất ra màn hình. Soạn thảo nội dung của một tập tin bằng lệnh cat tức là đã đổi h−ớng đầu ra của lệnh từ màn hình vào một tập tin. Ng−ời dùng gõ nội dung của tập tin ngay tại dấu nhắc màn hình và gõ CTRL+dđể kết thúc việc soạn thảo. Nh−ợc điểm của cách tạo tập tin này là nó không cho phép sửa lỗi, ví dụ nếu muốn sửa một lỗi chính tả trên một dòng, chỉ có cách là xóa đến vị trí của lỗi và gõ lại nội dung vừa bị xóa.
Ví dụ: tạo tập tin newfile trong th− mục /home/vd bằng lệnh cat. # cat > /home/vd/newfile
This is a example of cat command #
Sau khi soạn thảo xong, gõ Enter và CTRL+d để trở về dấu nhắc lệnh, nếu không
gõ Enter thì phải gõ CTRL+d hai lần. Có thể sử dụng luôn lệnh cat để xem nội dung
của tập tin vừa soạn thảo:
# cat /home/vd/newfile This is a example of cat command
#
3.4.3 Các lệnh thao tác trên tập tin * Sao chép tập tin với lệnh cp * Sao chép tập tin với lệnh cp
Lệnh cp có hai dạng nh− sau:
cp [tùy-chọn]... <tập-tin-nguồn> ... <tập-tin-đích> cp [tùy-chọn]... --target-directory=<th−-mục> <tập- tin-nguồn>...
Lệnh này cho phép sao tập-tin-nguồn thành tập-tin-đích hoặc sao chép từ nhiều tập-tin-nguồn vào một th− mục đích (tham số <tập-tin-đích> hay <th−-mục>). Dạng thứ hai là một cách viết khác đổi thứ tự hai tham số vị trí.
Các tùy chọn của lệnh:
-a, --archive
giống nh− -dpR (tổ hợp ba tham số -d, -p, -R, nh− d−ới đây).
tạo tập tin l−u cho mỗi tập tin đích nếu nh− nó đang tồn tại.
-d, --no-dereference
duy trì các liên kết.
-f, --force
ghi đè tập tin đích đang tồn tại mà không nhắc nhở.
-i, --interactive
có thông báo nhắc nhở tr−ớc khi ghi đè.
-l, --link
chỉ tạo liên kết giữa tập-tin-đích từ tập-tin-nguồn mà không sao chép.
-p, --preserve
duy trì các thuộc tính của tập-tin-nguồn sang tập-tin-đích.
-r
cho phép sao chép một cách đệ quy tập tin thông th−ờng.
-R
cho phép sao chép một cách đệ quy th− mục.
-s, --symbolic-link
tạo liên kết t−ợng tr−ng thay cho việc sao chép các tập tin.
-S, --suffix=<hậu-tố>
bỏ qua các hậu tố thông th−ờng (hoặc đ−ợc chỉ ra).
-u, --update
chỉ sao chép khi tập tin nguồn mới hơn tập tin đích hoặc khi tập tin đích ch−a có.
-v, --verbose
đ−a ra thông báo về quá trình sao chép.
--help
hiển thị trang trợ giúp và thoát.
Tập tin đích đ−ợc tạo ra có cùng kích th−ớc và các quyền truy nhập nh− tập tin nguồn, tuy nhiên tập tin đích có thời gian tạo lập là thời điểm thực hiện lệnh nên các thuộc tính thời gian sẽ khác.
Ví dụ, lệnh
# cp /home/ftp/vd /home/test/vd1
Nếu ở vị trí đích, mô tả đầy đủ tên tập tin đích thì nội dung tập tin nguồn sẽ đ−ợc sao chép sang tập tin đích. Trong tr−ờng hợp chỉ đ−a ra vị trí tập tin đích đ−ợc đặt trong th− mục nào thì tên của tập tin nguồn sẽ là tên của tập tin đích.
# cp /home/ftp/vd /home/test/
Trong ví dụ này, tên tập tin đích sẽ là vd nghĩa là tạo một tập tin mới
Nếu sử dụng lệnh này để sao một th− mục, sẽ có một thông báo đ−ợc đ−a ra cho biết nguồn là một th− mục và vì vậy không thể dùng lệnh cp để sao chép.
# cp . newdir cp: .: omitting directory
Ví dụ về việc lệnh cp cho phép sao nhiều tập tin cùng một lúc vào một th− mục.
# cp vd vd1 newdir # pwd /newdir # ls -l total 8 -rw-r--r-- 1 root ftp 15 Nov 14 11:00 vd -rw-r--r-- 1 root ftp 12 Nov 14 11:00 vd1 L−u ý:
Đối với nhiều lệnh làm việc với tập tin, khi gõ lệnh có thể sử dụng kí hiệu mô tả nhóm để xác định một nhóm tập tin làm cho tăng hiệu lực của các lệnh đó. Ví dụ, lệnh:
# cp * bak
thực hiện việc sao chép mọi tập tin có trong th− mục hiện thời sang th− mục con của nó có tên là bak.
Dùng lệnh
# cp /usr/src/linux-2.2.14/include/linux/*.h bak
cho phép sao chép mọi tập tin với tên có hai kí hiệu cuối cùng là ".h" sang th− mục con bak.
Chính vì lí do nói trên, dù trong nhiều lệnh tuy không nói đến việc sử dụng kí hiệu mô tả nhóm tập tin nh−ng chúng ta có thể áp dụng chúng nếu điều đó không trái với suy luận thông th−ờng. Do những tình huống nh− thế là quá phong phú cho nên không thể giới thiệu hết trong cuốn sách. Chúng ta chú ý một giải pháp là mỗi khi sử dụng một lệnh nào đó, nên thử nghiệm cách thức hiệu quả này.