มีเครื่องมือคัดลอกไฟล์ที่ดีหรือไม่?


8

กล่องโต้ตอบการคัดลอกติดค้างที่ 0 วินาที ...

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

ฉันค้นหาUbuntuเพื่อค้นหาโพสต์ที่คล้ายกันและได้รับมากมายแต่ไม่มีคำตอบที่ดีเลย

ดังนั้น ... มีเครื่องมือคัดลอกทางเลือกอื่น ๆ เช่นTeracopyบน Windows หรือไม่?

หรือมีการแก้ไขใด ๆ ที่ฉันสามารถทำได้?

ป้อนคำอธิบายภาพที่นี่


นอกจากนี้โปรดแจ้งให้เราทราบว่าฉันควรอัปโหลดไฟล์ใดสำหรับการอ้างอิง
Severus Tux

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

@ ByteCommander ช้าลงคุณหมายถึงความเร็วจริงหรือเปล่า?
Severus Tux

2
ฉันไม่คุ้นเคยกับหัวข้อนั้นมากนัก แต่การแคชเพียงเก็บข้อมูลที่คุณต้องการเขียนไปยังอุปกรณ์ USB ของคุณในหน่วยความจำและเขียนลงในภายหลังจริง ๆ เมื่อคิดว่าบัสหรืออุปกรณ์ไม่ว่างหรือเมื่อมันสามารถปรับวิธีให้เหมาะสมที่สุด เพื่อบันทึกบล็อคข้อมูลเข้าด้วยกัน ... สิ่งนี้ไม่ควรปรับปรุงความเร็วในการเขียนจริง (มาก) มันจะปรากฏขึ้นเร็วกว่าสำหรับคุณเนื่องจากการคัดลอกรายงานจะเสร็จสิ้นทันทีที่ข้อมูลทั้งหมดที่เขียนอยู่ในแคช แต่มันยังคงใช้เวลาในการเขียนแคชไปยังอุปกรณ์ คุณไม่สามารถถอดปลั๊กออกทันทีก่อนที่แคชจะถูกเขียน
ผู้บัญชาการไบต์

ใช่ความเร็วการคัดลอกที่แท้จริงจะเท่ากัน (อาจช้าลงเล็กน้อยเนื่องจากบัฟเฟอร์ทำให้มีโอกาสน้อยกว่าที่จะมีช่วงเวลาที่ไม่มีการเขียนลงดิสก์ แต่ไม่มากในระบบที่โหลดเบา) แต่กล่องโต้ตอบความคืบหน้า จะแม่นยำยิ่งขึ้น
ฮอบส์

คำตอบ:


6

คุณไม่ควรกังวลเกี่ยวกับเรื่องนี้มากเกินไป
บางทีการ์ด USB ของคุณอาจมีคุณภาพต่ำกว่า
เอาต์พุตไดอะล็อกที่เกี่ยวข้องกับเวลาทำให้เข้าใจผิด

เครื่องมือคัดลอกอื่น ๆ อาจมีลักษณะการทำงานเอาต์พุตต่างกัน
แต่ไม่ได้ปรับปรุงความเร็วการเขียนของไดรฟ์ USB
ที่สำคัญที่สุดคือการทำสำเนาสำเร็จ

สิ่งที่คุณสามารถทำได้คือการปรับการตั้งค่าอินพุทของดิสก์

ติดตั้งgksu(เมื่อคุณยังไม่ได้ดำเนินการ) เพื่อแก้ไขไฟล์ด้วยgeditรูท:

sudo apt-get install gksu  

ตอนนี้ปรับลำดับความสำคัญของกระบวนการทำงานทั้งหมดสำหรับดิสก์ประเภทต่างๆ:

gksudo gedit /etc/udev/rules.d/60-schedulers.rules

วางบรรทัดต่อไปนี้ลงในไฟล์ว่างนี้และบันทึกไฟล์หลังจากนั้น:

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  

การเปลี่ยนแปลงที่คุณทำจะมีผลหลังจากรีสตาร์ทระบบปฏิบัติการ

นอกจากนี้ ... โซลูชันคัดลอกสำรองมีอยู่ในที่เก็บ Ubuntu:

sudo apt-get install dirdiff  

ตอนนี้เปิดเครื่องมือจากเทอร์มินัลเพื่อเปรียบเทียบหรือคัดลอกไฟล์และโฟลเดอร์:

dirdiff

dirdiffเป็นGUIสำหรับdiffและสามารถจัดการได้ถึง 5 ต้นไม้ มันจะแสดงหน้าต่างหลักที่มีรายชื่อของไฟล์ที่แตกต่างกันระหว่างต้นไม้ที่มีสี่เหลี่ยมสีเพื่อระบุอายุสัมพัทธ์ของรุ่น เมนูช่วยให้คุณแสดงความแตกต่างระหว่างสองเวอร์ชันในหน้าต่างอื่น เมนูอื่นช่วยให้คุณสามารถคัดลอกไฟล์และโฟลเดอร์จากทรีหนึ่งไปยังอีกทรี

สรุป: ส่วนใหญ่ที่เกี่ยวข้องทั้งหมดคือคุณภาพของดิสก์ USB และความเร็วในการเขียน!


7

เหตุผลที่คุณเห็นการคัดลอกที่เกิดขึ้นในแบบที่คุณทำคือการเขียนไปยังไดรฟ์ USB ที่ไม่ตรงกัน

เมื่อคุณคัดลอกไฟล์มันจะทำการคัดลอกไปยังบัฟเฟอร์ของไดรฟ์ usb ซึ่งอยู่ใน RAM ของคอมพิวเตอร์ของคุณ ส่วนแรกของการคัดลอกนั้นเร็วมากเพราะมันเพิ่งจะเข้าไปในบัฟเฟอร์ ข้อมูลถูกล้างออกจากบัฟเฟอร์ไปยังไดรฟ์ USB ในอัตราที่ช้ากว่ามาก เมื่อบัฟเฟอร์เต็มแล้วต้องรอให้ข้อมูลบางส่วนถูกฟลัชไปยังดิสก์ก่อนที่จะสามารถวางลงในบัฟเฟอร์ได้อีกดังนั้นการคัดลอกจึงช้าลงอย่างมีประสิทธิภาพถึงความเร็วของไดรฟ์ USB เมื่อไฟล์ทั้งหมดถูกวางลงในบัฟเฟอร์จะปรากฏว่าไฟล์นั้นถูกคัดลอก อย่างไรก็ตามข้อมูลทั้งหมดไม่ได้ถูกล้างออกจากบัฟเฟอร์ไปยังดิสก์ USB โปรแกรมคัดลอกบางโปรแกรมเพิ่งส่งคืนและปล่อยให้การล้างดำเนินการในพื้นหลัง บางคนจะรอจนกว่าข้อมูลทั้งหมดจะถูกลบทิ้งซึ่งเป็นสาเหตุที่ข้อมูลจะอยู่ที่ 100% ในบางครั้ง

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

-o syncถ้าคุณติดตั้งดิสก์จากบรรทัดคำสั่งคุณสามารถเพิ่ม

หากคุณติดตั้งโดยใช้ fstab คุณสามารถเพิ่มsyncตัวเลือก

หากคุณใช้ Ubuntu ในการติดตั้งให้กับคุณเมื่อคุณเข้าถึงใน GUI คุณสามารถแก้ไขตัวเลือกการเมานต์จากบรรทัดคำสั่งเมื่อติดตั้งแล้ว:

sudo mount -o remount -o sync /media/yourname/diskname

2
นี่คือคำตอบ
kos

2

ปัญหามีแนวโน้มว่าไฟล์จะถูกอ่านและเก็บไว้ในหน่วยความจำอย่างสมบูรณ์ก่อนที่จะถูกเขียนไปยังไดรฟ์เป้าหมายอย่างสมบูรณ์

สิ่งนี้ไม่ได้หมายความว่าจะตอบคำถามอย่างถูกต้อง แต่สามารถใช้วิธีแก้ปัญหาpvจากบรรทัดคำสั่งในกรณีที่มีไฟล์ขนาดใหญ่:

sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install pv

เมื่อใดก็ตามที่ต้องการคัดลอกไฟล์ขนาดใหญ่:

pv /path/to/big_file >/media/username/usb/big_file

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

[...] | pv -L 10M >/media/username/usb/big_file # Limits the transfer rate to 10 MB/s

1

มีทางเลือกมากมาย คุณสามารถใช้วิธีบรรทัดคำสั่ง:

cp *source* *target*

โดยที่ source คือไฟล์ที่คุณต้องการคัดลอกและเป้าหมายคือไฟล์หรือโฟลเดอร์ที่คุณต้องการคัดลอก ตัวเลือกเพิ่มเติมอาจพบได้ที่https://softwarerecs.stackexchange.com/


0
dd if=INPUT_FILE_PATH of=OUTPUT_FILE_PATH bs=$(( 64 * 1024 * 1024 )) oflag=sync

นี่จะอ่านจากifไฟล์ของคุณและเขียนไปยังofไฟล์ใน 64MiB chunks และรอจนกว่าแต่ละ chunk จะถูกเขียนออกมาก่อนที่จะเริ่มอันถัดไป ยูทิลิตี้ที่คุณใช้งานอยู่น่าจะเป็นเพียงแค่อ่านไฟล์ในหน่วยความจำแล้วส่งไปยังดิสก์ (และไม่มีการบอกจำนวนไบต์ต่อครั้งที่มันทำ) การเขียนแคชสามารถอยู่ในดองเกิล USB เองได้ .... ดังนั้นความเร็ว 60MiB ต่อวินาทีที่คุณได้รับคืออัตราการถ่ายโอนผ่านการเชื่อมต่อ usb ไปยังแคชภายในของดองเกิล แต่นั่นไม่น่าเป็นไปได้เว้นแต่จะเป็นดองเกิล USB3 USB2 มีปริมาณงานไม่เพียงพอที่จะรองรับ 60MiB ต่อวินาที


0

ไม่จำเป็นสำหรับทุกสิ่งที่กล่าวมา เพียงเปิดหน้าต่างเทอร์มินัลเมื่อการถ่ายโอนแสดง 0% ทางซ้ายและพิมพ์syncจากหน้าคนคำสั่ง sync จะล้างข้อมูลบัฟเฟอร์ของระบบไฟล์ แต่แน่นอนว่ามันจะล้างเฉพาะสิ่งที่คุณมีสิทธิ์เท่านั้น หากคุณต้องการที่จะล้างพวกเขาทุกประเภทsudo sync

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