Lệnh cp có hai dạng như sau:
cp [tùy-chọn] <file-nguồn> ... <file-đích>
cp [tùy-chọn] --target-directory=<thư-mục> <file-nguồn>...
Lệnh này cho phép sao file-nguồn thành file-đích hoặc sao chép từ nhiều file-nguồn vào một thư mục đích (tham số <file-đí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:
-a, --archive : giống như -dpR (tổ hợp ba tham số -d, -p, -R, như dưới đây).
-b, --backup[=CONTROL] : tạo file lưu cho mỗi file đích nếu như nó đang tồn tại.
-d, --no-dereference : duy trì các liên kết.
-f, --force : ghi đè file đí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 file-đích từ file-nguồn mà không sao chép.
-p, --preserve : duy trì các thuộc tính của file-nguồn sang file-đích. -r : cho phép sao chép một cách đệ quy file 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 file.
-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 file nguồn mới hơn file đích hoặc khi file đí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.
File đích được tạo ra có cùng kích thước và các quyền truy nhập như file nguồn, tuy nhiên file đí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 file đích thì nội dung file nguồn sẽ được sao chép sang file đích. Trong trường hợp chỉ đưa ra vị trí file đích được đặt trong thư mục nào thì tên của file nguồn sẽ là tên của file đích.
6 6 Trong ví dụ này, tên file đích sẽ là vd nghĩa là tạo một file mới /home/test/vd.
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 file 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 file, khi gõ lệnh có thể sử dụng kí hiệu mô tả nhóm để xác định một nhóm file 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 file 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 file 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 file 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 tài liệu. 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.
* Đổi tên file với lệnh mv
Cú pháp lệnh đổi tên file:
mv <tên-cũ> <tên-mới>
Lệnh này cho phép đổi tên file từ tên cũ thành tên mới.
Ví dụ:
# mv vd newfile
Lệnh này sẽ đổi tên file vd thành newfile. Trong trường hợp file newfile đã tồn tại,
nội dung của file vd sẽ ghi đè lên nội dung của file newfile.
* Xóa file với lệnh rm
Lệnh rm là lệnh rất "nguy hiểm" vì trong Linux không có lệnh khôi phục lại những gì đã xóa, vì thế hãy cẩn trọng khi sử dụng lệnh này. Cú pháp lệnh:
rm [tùy-chọn] <file> ...
Lệnh rm cho phép xóa bỏ một file hoặc nhiều file. Các tùy chọn:
-d, --directory : loại bỏ liên kết của thư mục, kể cả thư mục không rỗng. Chỉ có siêu người dùng mới được phép dùng tùy chọn này.
-f, --force : bỏ qua các file (xác định qua tham số file) không tồn tại mà không cần nhắc nhở. -i, --interactive : nhắc nhở trước khi xóa bỏ một file.
-r, -R, --recursive : xóa bỏ nội dung của thư mục một cách đệ quy. -v, --verbose : đưa ra các thông báo về quá trình xóa file.
--help : hiển thị trang trợ giúp và thoát.
Lệnh rm cho phép xóa nhiều file cùng một lúc bằng cách chỉ ra tên của các file cần xóa trong dòng lệnh (hoặc dùng kí kiệu mô tả nhóm).
Ví dụ, dùng lệnh ls để xem danh sách các file trong thư mục hiện thời:
# ls ld-Linux.so.1 ld-Linux.so.1.9.5 ld-Linux.so.2 ld.so ld.so.1.9.5 libBrokenLocale-2.1.3.so libBrokenLocale.so.1 libNoVersion-2.1.3.so vd2.txt libnss_dns-2.1.3.so libnss_dns.so.1 libnss_dns.so.2 libnss_files-2.1.3.so libnss_files.so.1 libnss_files.so.2 libnss_hesiod-1.3.so telex.o
Sử dụng lệnh xóa file vd2.txt sau đây:
# rm vd2.txt telex.o
và sau đó dùng lệnh ls để xem lại danh sách file:
# ls ld-Linux.so.1 ld-Linux.so.1.9.5 ld-Linux.so.2 ld.so ld.so.1.9.5 libBrokenLocale-2.1.3.so libBrokenLocale.so.1 libNoVersion-2.1.3.so Libnss_dns-2.1.3.so Libnss_dns.so.1 Libnss_dns.so.2 Libnss_files-2.1.3.so Libnss_files.so.1 Libnss_files.so.2 Libnss_hesiod-1.3.so telex.o Dùng lệnh # rm bak/*.h
6 8
* Lệnh đếm từ và dòng trong file wc
Linux có lệnh wc dùng để đếm số ký tự, số từ, hay số dòng trong một file. Cú pháp lệnh:
wc [tùy-chọn] [file]...
Lệnh hiện ra số lượng dòng, số lượng từ, số lượng ký tự có trong mỗi file, và một dòng tính tổng nếu có nhiều hơn một file được chỉ ra. Nếu không có tùy chọn nào thì mặc định đưa ra cả số dòng, số từ và số ký tự. Ngầm định khi không có tên file trong lệnh thì sẽ đọc và đếm trên thiết bị vào chuẩn.
Các tuỳ chọn:
-c, --byte, --chars : đưa ra số ký tự trong file. -l, --lines : đưa ra số dòng trong file.
-L, --max-line-length : đưa ra chiều dài của dòng dài nhất trong file.
-w, --words : đưa ra số từ trong file. --help : hiển thị trang trợ giúp và thoát.
Ví dụ, sau khi gõ lệnh:
# wc /home/lan/mau/mau1
xuất hiện dòng thông báo: