Câu trả lời:
Bạn có thể sao chép nội dung của một thư mục /source
sang một thư mục hiện có khác /dest
bằng lệnh
cp -a /source/. /dest/
Các -a
tùy chọn là một lựa chọn đệ quy được cải thiện, mà giữ gìn tất cả các thuộc tính tập tin, và cũng có thể duy trì liên kết tượng trưng.
Các .
ở cuối đường dẫn nguồn là một cụ thể cp
cú pháp cho phép để sao chép tất cả các file và thư mục, bao gồm những ẩn.
cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/
-p
cờ như để bảo vệ các quyền và dấu thời gian của tệp. cp -ap /var/www/original.com/images/. /var/www/new.com/images/
-a
đã ngụ ý --preserve=all
, nó rộng hơn -p = --preserve=mode,ownership,timestamps
.
scp
được sử dụng để sao chép qua mạng (thông qua ssh
) và chỉ mã hóa kênh liên lạc, không phải các tệp trên hệ thống tệp đích.
Một thay thế là rsync
rsync -r source/ destination
Ưu điểm của rsync là:
Sau khi đồng bộ hóa ban đầu, nó sẽ chỉ sao chép các tệp đã thay đổi.
Bạn có thể sử dụng nó qua mạng, thuận tiện cho các tệp trong $ HOME, đặc biệt là các tệp cấu hình.
rsync -r source/ destination
Có nên đủ không?
rync source/ dest
rõ ràng mọi người sẽ cần tùy chỉnh lệnh rsync để hoạt động như họ muốn.
Cho phép nói rằng bạn có một thư mục có tên folder1 tại của bạn ~
, bên trong folder1 là 1 tập tin có tên file1 và 2 thư mục gọi là Sub1 và sub2 mỗi với các tập tin và thư mục khác bên trong chúng.
Để sao chép tất cả các nội dung của ~/folder1
để ~/new_folder1
bạn sẽ sử dụng
cp -r ~/folder1/. ~/new_folder1
new_folder1
sau đó sẽ chứa tất cả các tập tin và thư mục từ folder1
.
cp
là lệnh sao chép bằng thiết bị đầu cuối, -r
làm cho nó đệ quy (vì vậy, thư mục hiện tại + thư mục tiếp theo bên trong hiện tại) ~/folder1
là thư mục gốc, ~/new_folder1
là thư mục đích cho các tệp / thư mục bên trong gốc.
~/new_folder1/folder1
thay vì sao chép nội dung trên.
cp -r ~/folder1/* ~/new_folder1
[root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]#
Kiểm tra http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ để biết thêm thông tin về sao chép thư mục. Hi vọng điêu nay co ich.
cp Command
cp
là một lệnh Linux để sao chép các tập tin và thư mục. Cú pháp như sau:
cp source destination
cp dir1 dir2
cp -option source destination
cp -option1 -option2 source destination
Trong ví dụ này sao chép /home/vivek/letters
thư mục và tất cả các tệp của nó vào /usb/backup
thư mục:
cp -avr /home/vivek/letters /usb/backup
Ở đâu,
-a
: Giữ nguyên các thuộc tính được chỉ định như thư mục một chế độ tệp, quyền sở hữu, dấu thời gian, nếu có thể các thuộc tính bổ sung: bối cảnh, liên kết, xattr, tất cả.
-v
: Giải thích những gì đang được thực hiện.
-r
: Sao chép thư mục đệ quy. Thí dụ
Sao chép thư mục có tên / tmp / conf vào / tmp / backup:
$ cp -avr /tmp/conf/ /tmp/backup
Sao chép thư mục dir_1 và nội dung của nó (_files_) vào thư mục dir_2 :
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
Chỉ sao chép nội dung (_files_) của dir_1 vào thư mục dir_2 :
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_*
_files_
là một giữ chỗ cho các tập tin thực tế nằm trong thư mục.
Nếu có hai thư mục: (có quyền ghi)
drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 .
drwxr-xr-x 3 root root 4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA
drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL
Nếu bạn ở trong thư mục có tên PORTAL nơi bạn muốn sao chép tất cả nội dung của thư mục khác, hãy nói DATA ở cùng cấp độ, bạn sẽ làm
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
Bạn phải chú ý 2 chấm. Dấu chấm cuối cùng cho biết bản sao ở đây trong thư mục hiện tại
và
một sau / DATA /. nói rằng tất cả NỘI DUNG bên trong thư mục DATA sẽ được sao chép chứ không phải chính thư mục DATA.
Nếu bạn xóa dấu vết này "." từ / DATA /
sau đó toàn bộ thư mục DATA sẽ được sao chép bên trong PORTAL (từ nơi bạn đang đối phó).