“ cp: ไดเรกทอรีที่ละเว้น” หมายความว่าอะไร


408

ฉันออกคำสั่งต่อไปนี้:

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

เมื่อฉันทำสิ่งนี้ฉันเริ่มได้รับข้อความต่อไปนี้:

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' 

และอื่น ๆ ...

ทำไมฉันถึงได้รับข้อความเหล่านี้?

คำตอบ:


536

โดยค่าเริ่มต้นcpคัดลอกเฉพาะไฟล์โดยตรงและไม่ใช่ไดเรกทอรีย่อยในไดเรกทอรี ข้อความcp: omitting directory 'directory'เตือนคุณว่าไดเรกทอรีดังกล่าวไม่ได้คัดลอก

หากต้องการทำเช่นนั้นให้ระบุตัวเลือก-r(หรือ--recursive):

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

หน้าคู่มือ (คำสั่งman cp) ประกอบด้วยภาพรวมของตัวเลือกที่ใช้ได้


2
ขอบคุณมาก. ฉันคิดว่า * จะจัดการกับมันซ้ำซากอย่างใด แต่ไม่มี. : D ขอบคุณอีกครั้ง :)
MEM

11
@MEM คือมีการขยายโดยการทุบตีไม่ได้โดย* cpทดสอบด้วยตัวเองโดยวางecho หน้าคำสั่งของคุณ เมื่อขยายแล้วจะจับคู่ทุกอย่างด้วยคำสั่งก่อนหน้า...library/Zend/(ไฟล์และไดเรกทอรีในนั้น)
Lekensteyn

ข่าวดีก็คือomitting directory 'directory'ไม่ได้หมายความว่าจะลบไดเรกทอรีนั้น
Bishwas Mishra

@Lekensteyn ฉันพยายามที่จะคัดลอกเนื้อหาของผู้ใช้รายหนึ่งไปยังอีกคนหนึ่งดังนั้นฉันจึงได้รับอนุญาตจากผู้ใช้ด้วยchmod a+rx ~/หลังจากที่ฉันพยายามที่จะคัดลอกcp /home/2110/* /home/2111/มันจะก่อให้เกิดข้อผิดพลาดซึ่งระบุว่าการอนุญาตถูกปฏิเสธ ที่ฉันผิด ขอโทษที่แสดงความคิดเห็นเพราะฉันไม่สามารถถามคำถามที่ซ้ำกัน ฉันหวังว่าจะได้รับคำตอบอย่างรวดเร็ว :)
jasinth premkumar

@jasinthpremkumar ไฟล์ใน/home/2110เป็นเจ้าของโดยผู้ใช้ 2110 ในขณะที่ไฟล์ใน/home/2111ที่ควรจะเป็นเจ้าของโดยการตั้งค่า 2111. sudo chown -R 2111 /home/2111เจ้าของใช้สิ่งที่ต้องการ
Lekensteyn

40

ข้อความหมายความว่าcpยังไม่ได้คัดลอกไดเรกทอรี นี่เป็นพฤติกรรมเริ่มต้นสำหรับcp- เฉพาะไฟล์ที่ถูกคัดลอกตามปกติไม่ว่าคุณจะระบุอย่างชัดเจนหรือใช้*ก็ตาม หากคุณต้องการคัดลอกไดเรกทอรีใช้-rสวิตช์ซึ่งหมายถึง "ซ้ำ"


16

สองสิ่งที่นี่ซึ่งต้องตรวจสอบ:

  1. sudoอย่าใช้ คุณไม่ต้องการมันคุณมีสิทธิ์เขียนเนื้อหาในโฮมไดเร็กตอรี่ของคุณเองแล้ว

  2. คุณสามารถดูไฟล์และไดเรกทอรีที่ซ่อนอยู่ในตัวจัดการไฟล์กราฟิกโดยเลือกดู / แสดงไฟล์ที่ซ่อนจากเมนู หรือโดยการกด-CtrlH

  3. คุณต้องใช้-Rตัวเลือกในcpคำสั่งเพื่อคัดลอกไดเรกทอรีและเนื้อหา

  4. / home ไม่ใช่ไดเรกทอรีบ้านของคุณ / home / ชื่อผู้ใช้คือ ดังนั้นคุณอาจพยายามคัดลอกจากที่ผิด

  5. เชลล์เป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ดังนั้น ~ / ดาวน์โหลดและ ~ / Downloads เป็นสองสิ่งที่แตกต่างกัน


2

เมื่อคุณคัดลอกไดเรกทอรีเช่น:

cp dir1 copy_of_dir1

คุณเท่านั้นและคัดลอกdir1ตัวเองอย่างแน่นอนและไม่ใช่ไฟล์ที่อยู่ภายในดังนั้นในตอนท้ายคุณจะจบลงด้วยโครงสร้างไดเรกทอรีใหม่ในขณะที่ไม่มีโครงสร้าง

ในคำอื่น ๆ หลังจากที่มันได้รับการคัดลอกมันจะบอกว่าเนื้อหาของฉันคือfile1, file2ฯลฯ ; อย่างไรก็ตามไฟล์เหล่านี้ยังไม่ถูกคัดลอกและไม่มีอยู่ในนั้น

ดังนั้นเพื่อแก้ไขปัญหานี้ที่อาจเกิดขึ้นcpโดยค่าเริ่มต้นไม่ได้คัดลอกไดเรกทอรีและข้ามพวกเขาจนกว่าคุณจะระบุ-rตัวเลือกที่คัดลอกไฟล์ทั้งหมดซ้ำด้วย


1

เหตุผลที่บอกว่าomitting directoryเป็นเพราะcpและทุกโปรแกรมอรรถประโยชน์การคัดลอกที่ฉันรู้สร้างรายการของไฟล์และไดเรกทอรีย่อยที่จะคัดลอกก่อนที่จะเริ่มคัดลอกไฟล์ เมื่อไม่มี--recursiveตัวเลือกไดเรกทอรีย่อยจะชนกับรายการนี้ ดังนั้นการละเว้นหมายถึงการลบออกจากรายการคัดลอกไม่ใช่จากสื่อต้นฉบับของคุณ ฉันเชื่อว่าสิ่งนี้พูดถึงความหมายของข้อความ


0

CPคำสั่งที่ใช้ในการคัดลอกไฟล์และไดเรกทอรีไม่ไดเรกทอรีที่ซ้อนกันถ้าคุณต้องการที่จะคัดลอกไดเรกทอรีรังแล้วคุณสามารถเพิ่ม-rหลังจากนั้นที่ -r หมายถึงการเวียนเกิด

ไวยากรณ์ที่คุณสามารถติดตามได้ (ทำงานเป็นรูท):

cp -r /source/dir/* /destination/ 

หรือ

cp --recursive /source/dir/* /destination/

-1

สมมติว่าคุณมี 'Tag' และการทดสอบ 'สองไดเรกทอรี

หากคุณต้องการคัดลอกไดเรกทอรี 'แท็ก' ไปยังคำสั่งการใช้งานไดเรกทอรี 'ทดสอบ'

$ : cp -r Tag Test (case sensitive)

ปัญหาส่วนใหญ่จะได้รับการแก้ไขด้วยรหัสข้างต้นถ้าไม่และคุณจะได้รับข้อความด้านล่างเช่น

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

จากนั้นเพิ่มไฟล์บางไฟล์ในไดเรกทอรี 'แท็ก' แล้วคัดลอกไฟล์เหล่านั้นไปที่ 'ทดสอบ' จริง ๆ แล้วฉันมีปัญหาเดียวกัน แต่แก้ไขเหมือนที่ฉันพูดครั้งที่สอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.