Câu hỏi Làm cách nào để sao chép nội dung của thư mục sang thư mục khác trong một thư mục khác bằng thiết bị đầu cuối?


Tôi đang cố gắng sao chép nội dung của một thư mục vào một thư mục khác trong một thư mục khác bằng thiết bị đầu cuối.

Ai đó có thể cung cấp cho tôi một ví dụ về cú pháp dòng lệnh cần thiết để đạt được điều này?


529
2017-12-11 01:19


gốc


cyberciti.biz/faq/copy-folder-linux-command-line có thông tin rõ ràng hơn. - Dilip Rajkumar


Các câu trả lời:


Bạn có thể sao chép nội dung của một thư mục /source sang thư mục hiện có khác /dest với lệnh

cp -a /source/. /dest/

Các -a tùy chọn là một tùy chọn đệ quy cải tiến, bảo toàn tất cả các thuộc tính tệp và cũng giữ lại các liên kết tượng trưng.

Các . ở cuối đường dẫn nguồn là một cp cú pháp cho phép sao chép tất cả các tệp và thư mục, bao gồm các tệp và thư mục ẩn.


802
2017-12-11 12:01



Câu trả lời chính xác. Tôi sẽ viết một ví dụ thực sự trong trường hợp ai đó đang gặp rắc rối với lệnh này: sudo cp -a / var / www / opencart /. / var / www / opencart_local / - pablofiumara
@enzotib Tôi đang cố gắng sử dụng lệnh này để sao chép nội dung của "Tải xuống / textext" thành "~ / .config / inkscape / extensions /." Sử dụng lệnh của bạn, tôi gõ "cp -a / Downloads / textext /. /~/.config/inkscape/extensions/." dường như không hiệu quả - Funzies
@ Funzies: có lẽ lệnh của bạn nên là: cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/ - enzotib
Thêm vào -p gắn cờ để giữ quyền truy cập tệp và dấu thời gian. cp -ap /var/www/original.com/images/. /var/www/new.com/images/ - Dylan Valade
@DylanValade: -a đã ngụ ý --preserve=all, rộng hơn -p = --preserve=mode,ownership,timestamps. - enzotib


Một thay thế là rsync

rsync -r source/ destination

Ưu điểm của rsync là:

  1. Sau khi đồng bộ ban đầu, nó sẽ chỉ sao chép các tệp đã thay đổi.

  2. 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à tệp cấu hình.


97
2017-12-11 03:59



Tôi nghĩ bạn không cần dấu hoa thị. rsync -r source/ destination là đủ, phải không? - Joschua
Điều này phù hợp hơn: 'rsync -rtvp source / * destination' - shridutt kothari
-r không hoạt động cho các tệp / thư mục ẩn - Nam G VU
Thao tác này sẽ không sao chép các tệp bị ẩn, vì bash chỉ mở rộng * cho tệp không được ẩn. Giải pháp của @Joschua an toàn hơn. - sauerburger
rsync sẽ sao chép toàn bộ thư mục, bao gồm các tệp bị ẩn, nếu bạn sử dụng dấu / không có dấu * để rync source/ dest Rõ ràng mọi người sẽ cần phải tùy chỉnh lệnh rsync để hoạt động như mong muốn. - Panther


Cho phép nói rằng bạn có một thư mục được gọi là thư mục1 trong của bạn ~, phía trong thư mục1 là 1 tệp được gọi là file1 và 2 thư mục được gọi là sub1 và sub2 mỗi tệp và thư mục khác bên trong chúng.

Để sao chép tất cả nội dung của ~/folder1 đến ~/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 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 (do đó, thư mục hiện tại + các thư mục khác 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 nguồn gốc.


56
2017-12-11 01:23



nó không bắt các tập tin ẩn - Portablejim
Cảm ơn Bruno! Nó giúp tôi hiểu cú pháp, mặc dù tôi phải thay đổi nó một chút (xóa dấu ~). Có thể vì thư mục đích nằm trong / opt, nằm trong một hệ thống tệp khác. Và cảm ơn bạn Portablejim để nhớ những điều tập tin ẩn! - pandisvezia
Giai đoạn sau là quan trọng. Không có nó, đôi khi nó có thể tạo một thư mục con mới ~/new_folder1/folder1 thay vì sao chép nội dung. - wisbucky
Tại sao không cp -r ~/folder1/* ~/new_folder1 - Alex78191
@ Alex78191 [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]# - Bruno Pereira


Kiểm tra điều này 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 bản sao ví dụ này /home/vivek/letters và tất cả các tệp của nó /usb/backup danh mục:

cp -avr /home/vivek/letters /usb/backup

Ở đâu,

-a : Bảo tồ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ác thuộc tính bổ sung có thể có: ngữ 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 sang / tmp / backup:

$ cp -avr /tmp/conf/ /tmp/backup

13
2017-11-25 05:53



Đây không phải là câu hỏi đặt ra. - cybermonkey
(Sử dụng -r với -a là thừa, trên gnu cp -a là giống như "-dr --preserve = all") - cristoper


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 đang ở 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 một thư mục khác, hãy nói DATA ở cùng một mức sau đó bạn sẽ làm

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

Bạn phải chú ý 2 dấu chấm. Dấu chấm cuối cho biết sao chép ở đây trong thư mục hiện tại

một sau / DATA /. nói rằng tất cả các thư mục CONTENTS bên trong DATA sẽ được sao chép, chứ không phải thư mục DATA.

Nếu bạn xóa dấu "." 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ó).


2
2017-09-09 10:39