คัดลอกไฟล์จำนวนมากโดยไม่หยุดข้อผิดพลาดบน OSX


16

ฉันต้องการคัดลอก Gb หลายตัวจาก HD ภายนอกไปยัง moan hd ของฉันและไฟล์บางไฟล์จะทำให้เกิดข้อผิดพลาด ถ้าฉันทำกับตัวค้นหามันจะหยุดในข้อผิดพลาดแรก

มีวิธีคัดลอกทุกอย่างไม่ว่าจะมีข้อผิดพลาดหรือไม่? คล้ายกับสำเนา teracopy ใน Windows ใช่ไหม


หากมีข้อผิดพลาดเกิดขึ้นคุณอาจไม่ต้องการคัดลอกไฟล์นั้น หรือคุณเพียงแค่ต้องการข้ามข้อผิดพลาดที่เกิดขึ้น? และที่จริงแล้วคำถามที่ดีกว่าก็คือ: ทำไมคุณได้รับข้อผิดพลาดเหล่านั้น สิ่งที่ผิดพลาดเหล่านี้ได้ยัง?
slhck

ฉันต้องการคัดลอกไฟล์อื่น ๆ ทั้งหมดและจัดการข้อผิดพลาดไม่ว่าจะเกิดอะไรขึ้นในภายหลัง
cfischer

คุณได้รับข้อผิดพลาดใดเป็นพิเศษ
slhck

1
ฉันหวังว่าพวกเขาจะเพิ่มคุณสมบัติ Windows Vista + เพื่อค้นหาและคัดลอกอย่างต่อเนื่องในขณะที่เตือนคุณถึงข้อผิดพลาด
Matthew Lock

คำตอบ:


21

ในเทอร์มินัลพิมพ์

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/

โฟลเดอร์ปลายทางควรเป็นโฟลเดอร์ใหม่ที่คุณกำลังสร้าง

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

ตัวอย่าง

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder

มันจะคัดลอกและแสดงข้อผิดพลาดสำหรับสิ่งที่ไม่สามารถคัดลอก แต่ไม่หยุด

* หากชื่อไดเรกทอรีของคุณมีช่องว่างให้ใส่เครื่องหมายคำพูดล้อมรอบเส้นทาง

ตัวอย่าง

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder

2
คำอธิบายใด ๆ เกี่ยวกับแฟล็ก -Rp
user337085

สิ่งนี้จะต้องแตกต่างกันสำหรับ osx บน linux -Rp หมายถึง recruse และคงไว้ซึ่งแอ็ตทริบิวต์ไม่เกี่ยวข้องกับข้อผิดพลาด
Benubird

1
man cpบน macOS บอกฉัน: "ในโหมด -R, cp จะทำการคัดลอกต่อไปแม้ว่าจะตรวจพบข้อผิดพลาด"
adriaan

2

คุณสามารถใช้cpตามที่แนะนำหรือrsyncแต่ในกรณีของข้อผิดพลาด I / O บางครั้งมันจะไม่ทำงาน

ดังนั้นในกรณีนี้คุณสามารถใช้ddเครื่องมือสำหรับไฟล์เฉพาะที่เสียหาย

ddย่อมาจาก“ การทำสำเนาดิสก์” นี่คืออรรถประโยชน์บรรทัดคำสั่งที่มาพร้อมกับ Mac OS X นอกจากนี้ยังมีรุ่นฟรีสำหรับ Windows ด้วย

ใช้ความระมัดระวังอย่างยิ่งแม้ว่าคุณจะคุ้นเคยกับบรรทัดคำสั่งแล้วเพราะ dd อาจทำให้ข้อมูลของคุณไม่สามารถกู้คืนได้หากคุณไม่ได้ระบุอินพุตและเอาต์พุตอย่างถูกต้อง คุณได้รับการเตือน

อาร์กิวเมนต์ของ dd เป็นแบบตรงไปข้างหน้า:

  • if = path_of_file_with_IO_errors ระบุเส้นทางอินพุต
  • of = path_of_clean_copy_to_create ระบุพา ธ เอาต์พุต
  • conv = noerror, การซิงค์บอกว่า dd ให้ความผิดพลาด

เส้นทางขาออกของคุณไม่ควรอยู่บนดิสก์เดียวกับไฟล์ที่เสียหาย ที่จริงแล้วคุณไม่ควรใช้การ์ดหรือดิสก์ที่มีข้อผิดพลาด I / O ต่อไปเนื่องจากอาจมีปัญหามากขึ้นในอนาคต หลังจากกู้คืนข้อมูลแล้วคุณควรทำให้เสียหรืออย่างน้อยก็ใช้เพื่อจัดเก็บสิ่งที่ไม่สำคัญ

เนื่องจากข้อผิดพลาดของ I / O, dd อาจใช้เวลามากขึ้นในการสร้างสำเนาใหม่ทั้งหมดที่ทำสำเนาปกติ

แต่มันก็คุ้มค่ากับการรอคอยจริง ๆ เพราะตอนนี้เรามีไฟล์ที่สะอาดซึ่งเราสามารถใช้คลังแสงของการวินิจฉัยเครื่องมือดูตัวอย่างและกู้คืนวิดีโอ

ข้อผิดพลาด I / O เป็นธุรกิจที่ร้ายแรงและการทิ้งการ์ดหลังจากกู้คืนวิดีโอน่าจะเป็นสิ่งที่ถูกต้อง คุณควรพิจารณาด้วยว่าวิดีโอจำนวนหนึ่งจะไม่ถูกกู้คืนหรือมีคุณภาพต่ำกว่าตัวเอก

ที่มา: http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

ตัวอย่าง:

dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync

ดูสิ่งนี้ด้วย:


1
ฉันได้ยินผู้แต่งของ dd อยากจะตั้งชื่อมันว่า cc เพื่อทำสำเนาคาร์บอน แต่สำเนาถูกใช้โดยคอมไพเลอร์ C แล้ว ฉันชอบที่ดีกว่า "การทำสำเนาดิสก์" 😀
ทิมBüthe

1

ฉันใช้Beyond Compareเพื่อจุดประสงค์นี้อย่างแน่นอน (เป็นซอฟต์แวร์เชิงพาณิชย์ แต่มีรุ่นทดลองใช้ฟรี) คุณบอกให้คัดลอกไฟล์โฟลเดอร์หรือไดรฟ์ทั้งหมดหรือชุดค่าผสมใด ๆ และมันจะเสร็จสิ้นการสิ้นสุดของงานและรายงานปัญหาที่เกิดขึ้น นี่ไม่ได้ช่วยกู้ไฟล์ที่เสียหาย แต่มันจะทำงานให้เสร็จไม่ว่าจะเจอปัญหากี่ไฟล์ก็ตาม

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