Chương 7 : Hệ thống tậptin
7.3. Di chuyển trong hệ thống tậptin
7.3.1. Sao chép file với lệnh cp
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ề q trình sao chép. + --help : hiển thị trang trợ giúp và thố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.
# cp /home/ftp/vd /home/test/
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.
7.3.2. Di chuyển tới thư mục khác
cd <tên thư mục> (cd viết tắt từ change directory)
Lệnh này sẽ di chuyển bạn tới thư mục mới. Nếu bạn không gõ tên thư mục, lệnh sẽ tự động chuyển bạn trở về thư mục chủ. Tương đương với lệnh cd ~ (dấu ngã) cd ..
Di chuyển lên một cấp thư mục. Ví dụ đang ở thư mục /home/sti ,sau khi gõ lệnh sẽ di chuyển tới thư mục /home
7.3.3. Sao chép thư mục
cp <tên thưmục 1> <tên thư mục 2> (cp viết tắt của từ copy) Lệnh này sẽ sao chép nội dung thư mục 1 sang thư mục 2.
Chú ý: lệnh trên chỉ sao chép được các tập tin trong thư mục 1 sang thư mục 2 mà thơi. Nếu có thư mục con, nó sẽ báo lỗi. Vì thế bạn nên sử dụng thêm tùy chọn -r để có thể sao chép được các thư mục con trong thư mục 1 sang thư mục 2
cp -r <tên thưmục 1> <tên thư mục 2>
Chú ý: nếu thư mục 2 tồn tại trên máy bạn, thư mục 1sẽ được chép vào thư mục 2 và trở thành thư mục con của thư mục 2.
7.3.4. Di chuyển thư mục
mv <tên thư mục 1> <tên thư mục 2> (mv viết tắt của từ move)
Ta cũng dùng tùy chọn -r nếu muốn di chuyển tất cả nội dung trong thư mục.
Chú ý: nếu thư mục 2 tồn tại trên máy bạn, thư mục 1 trở thành thư mục con của thư mục 2.