Câu hỏi “Cp: omitting directory” có nghĩa là gì?


Tôi đã đưa ra lệnh sau:

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

Khi tôi làm điều này, tôi bắt đầu nhận được các thông báo sau:

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 

và vân vân ...

Tại sao tôi nhận được những tin nhắn này?


365
2018-04-18 15:11


gốc




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


Theo mặc định, cp chỉ sao chép các tệp trực tiếp trong và không phải các thư mục con trong thư mục. Thông điệp cp: omitting directory 'directory' cảnh báo bạn rằng thư mục được đề cập không được sao chép.

Để làm như vậy, hãy chỉ định -r (hoặc là --recursive) Tùy chọn:

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

Các trang thủ công (chỉ huy: man cp) chứa tổng quan về các tùy chọn có sẵn.


477
2018-04-18 15:15



Cảm ơn rất nhiều. Tôi nghĩ rằng * sẽ đối phó với nó một cách đệ quy bằng cách nào đó. Nhưng không. : D Cảm ơn một lần nữa. :) - MEM
@MEM: the * được mở rộng bởi Bash, không phải bởi cp. Tự mình thử nghiệm bằng cách đặt echo  trước lệnh của bạn. Khi được mở rộng, nó khớp với mọi thứ với trước đó ...library/Zend/ (các tập tin và thư mục trong đó). - Lekensteyn
Tin tốt là omitting directory 'directory' không có nghĩa là nó đang xóa thư mục đó. - Bishwas Mishra
@Lekensteyn tôi đã cố sao chép nội dung của một người dùng sang một người dùng khác .so tôi đã được người dùng cấp phép chmod a+rx ~/ sau khi tôi cố gắng sao chép cp /home/2110/* /home/2111/ nó tạo ra lỗi cho phép từ chối. nơi tôi đã sai. xin lỗi để bình luận vì tôi không thể hỏi câu hỏi trùng lặp. tôi hy vọng trả lời nhanh :) - jasinth premkumar
@jasinthpremkumar Tệp trong /home/2110 được sở hữu bởi người dùng 2110 trong khi các tệp trong /home/2111 được cho là thuộc sở hữu của 2111. Để đặt chủ sở hữu, hãy sử dụng một cái gì đó như sudo chown -R 2111 /home/2111. - Lekensteyn


Thông điệp có nghĩa là cp đã không sao chép các thư mục được liệt kê. Đây là hành vi mặc định cho cp - chỉ các tệp được sao chép bình thường, bất kể bạn có đang chỉ định chúng một cách rõ ràng hoặc sử dụng hay không *. Nếu bạn muốn sao chép thư mục, hãy sử dụng -r chuyển đổi có nghĩa là "đệ quy".


34
2018-04-18 15:15





Vài thứ ở đây cần kiểm tra:

  1. Không sử dụng sudo. Bạn không cần nó, bạn đã có quyền để viết các công cụ trong thư mục chính của riêng bạn.

  2. Bạn có thể dễ dàng xem các tệp và thư mục ẩn trong trình quản lý tệp đồ họa bằng cách chọn Xem / Hiển thị Tệp Ẩn từ trình đơn. Hoặc bằng cách nhấn Ctrl - - H.

  3. Bạn cần sử dụng -R tùy chọn trong cp lệnh để sao chép một thư mục và nội dung của nó.

  4. / home không phải là thư mục chính của bạn. / home / username là. Vì vậy, bạn có thể đang cố gắng sao chép từ địa điểm sai.

  5. Vỏ có phân biệt chữ hoa chữ thường, vì vậy ~ / downloads và ~ / Downloads là hai thứ khác nhau.


14
2017-10-04 07:02





Khi bạn đang sao chép một thư mục như:

cp dir1 copy_of_dir1

Bạn chỉ và sao chép chính xác dir1 chính nó và không phải là các tập tin bên trong nó, do đó, ở cuối bạn sẽ kết thúc với một cấu trúc thư mục mới trong khi cấu trúc không tồn tại.

Nói cách khác sau khi nó đã được sao chép nó sẽ nói rằng nội dung của tôi là file1, file2, v.v. Tuy nhiên những tập tin này đã không được sao chép và do đó không tồn tại trong đó.

Vì vậy, để khắc phục sự cố này có thể xảy ra cp theo mặc định không sao chép các thư mục và bỏ qua chúng trừ khi bạn chỉ định -r tùy chọn sao chép tất cả các tệp đệ quy.


2
2017-07-03 07:47





Lý do nó nói omitting directory là vì cp và tất cả các tiện ích sao chép, mà tôi biết, tạo danh sách các tệp và thư mục con cần được sao chép trước khi bắt đầu sao chép các tệp. Khi mà --recursive các tùy chọn bị thiếu, các thư mục con sẽ bị loại khỏi danh sách này. Như vậy, bỏ qua đề cập đến việc loại bỏ khỏi danh sách sao chép, không phải từ phương tiện nguồn của bạn. Tôi tin rằng điều này giải quyết ý nghĩa của thông điệp.


1
2017-07-24 08:32





Giả sử bạn có hai thư mục 'Tag' & 'Test'

Nếu bạn muốn sao chép thư mục 'Thẻ' vào 'Sử dụng' thư mục sử dụng lệnh

$ : cp -r Tag Test (case sensitive)

Chủ yếu là vấn đề sẽ được giải quyết với mã trên nếu không và bạn nhận được dưới đây thông báo như

cp: omitting directory `Tag' 
cp: omitting directory `Test'

sau đó thêm một số tệp trong thư mục 'Thẻ' và sau đó sao chép các tệp đó vào 'Kiểm tra'. Trên thực tế tôi có cùng một vấn đề nhưng được giải quyết như những gì tôi đã nói thứ hai.


-1
2017-07-03 07:14