Unix - คัดลอกเนื้อหาของไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่ง [ปิด]


90
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

และตอนนี้Folder2/ดูเหมือนว่า:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

จะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร? ฉันได้ลองแล้วcp -r Folder1/ Folder2/แต่ลงเอยด้วย:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

ซึ่งใกล้ แต่ไม่ตรงกับที่ฉันต้องการ

ขอบคุณ!

คำตอบ:


124

ลองสิ่งนี้:

cp Folder1/* Folder2/

3
แต่จะไม่คัดลอกไฟล์ที่ซ่อนอยู่ใช่ไหม
Fabrizio Regini

9
แก้ไข. cp -Rจะ แต่จะคัดลอกซ้ำดังนั้นคุณอาจต้องการหรือไม่ต้องการใช้ คุณสามารถทำได้cp Folder1/.* Folder2/เพื่อคัดลอกเฉพาะไฟล์ที่ซ่อนอยู่
Geoff

1
โปรดทราบว่าสิ่งนี้จะล้มเหลวหากคุณใช้ "sudo" หรือเทียบเท่าและไดเร็กทอรีมีไฟล์จำนวนมาก ฉันได้รับsudo: unable to execute /bin/cp: Argument list too long
Nathan Osman

โปรดทราบว่า SCP มีไวยากรณ์ที่แตกต่างกันเล็กน้อยโปรดดูที่นี่: stackoverflow.com/a/26346339/1984636
sivi

อย่าทำอย่างนี้ ทำ "cp -rT src dest" บน Linux หรือ "cp -R src / dest" บน BSD
xpusostomos

47

ค่อนข้างง่ายด้วย*สัญลักษณ์แทน

cp -r Folder1/* Folder2/

แต่ตามตัวอย่างของคุณไม่จำเป็นต้องเรียกซ้ำดังนั้นสิ่งต่อไปนี้จะเพียงพอ:

cp Folder1/* Folder2/

แก้ไข:

หรือข้ามmkdir Folder2ส่วนและเรียกใช้:

cp -r Folder1 Folder2

ถ้าอย่างls | sort -k1.5 | head -8 > folder1นั้นต้องทำอย่างไร?
Pooja

คุณเพิ่งสูญเสียไฟล์ที่ซ่อนอยู่ทั้งหมด อย่าทำอย่างนี้ ทำ "cp -rT src dest" บน Linux หรือ "cp -R src / dest" บน BSD
xpusostomos

23

ในการสร้างสำเนาสิทธิ์การเป็นเจ้าของและทั้งหมดให้ใช้ "-a" กับ "cp" "-r" จะคัดลอกเนื้อหาของไฟล์ แต่ไม่จำเป็นต้องให้สิ่งอื่นเหมือนเดิม

cp -av ที่มา / * Dest /

(ตรวจสอบให้แน่ใจว่าปลายทาง / มีอยู่ก่อน)

หากคุณต้องการอัปเดตซ้ำ ๆ จากที่หนึ่งไปยังอีกที่หนึ่งหรือตรวจสอบให้แน่ใจว่าคุณคัดลอกไฟล์ดอทไฟล์ทั้งหมดด้วยrsyncเป็นตัวช่วยที่ดี

rsync -av - ลบแหล่งที่มา / Dest /

นอกจากนี้ยัง "กู้คืนได้" ซึ่งคุณสามารถเริ่มต้นใหม่ได้หากคุณยกเลิกขณะคัดลอก ฉันชอบ "-v" เพราะช่วยให้คุณดูสิ่งที่เกิดขึ้น แต่คุณสามารถละเว้นได้


1
มีไว้-vเพื่ออะไร?
HattrickNZ

verbose เพียงเพื่อดูว่าเกิดอะไรขึ้น
Brian White

1
หากคุณมีไฟล์จำนวนมาก-vตัวเลือกอาจใช้เวลาสักครู่ หากคุณไม่ต้องการให้ใช้เอาต์พุต-aเท่านั้น
Eyal Levin

1
คุณจะต้องใช้งานผ่านการเชื่อมต่อเครือข่ายที่ค่อนข้างช้าเพื่อให้การคัดลอกช้าลงโดยเอาต์พุตข้อความ และถึงอย่างนั้นก็น่าจะเป็นการกลับมาของพรอมต์คำสั่งไม่ใช่การคัดลอกเอง
Brian White

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