ฉันจะใช้คำสั่ง tar เพื่อจัดกลุ่มไฟล์โดยไม่มีการบีบอัดได้อย่างไร


49

ฉันมีโฟลเดอร์ขนาดใหญ่ที่มีไฟล์มากกว่า 120,000 ไฟล์ และฉันต้องการย้ายพวกเขาไปยังตำแหน่งอื่นบนเครื่องเดียวกัน (พาร์ทิชันเดียวกัน)

ฉันต้องการใช้ tar คำสั่งเพื่อจัดกลุ่มพวกเขาเป็นหน่วยเดียวแล้ว mv พวกเขาไปยังตำแหน่งสิ้นสุด

ฉันต้องใช้คำสั่งอะไร tar พวกเขาทั้งหมดเข้าด้วยกันและไม่บีบอัดอะไรเลย (ฉันต้องการผลลัพธ์ที่เร็วที่สุด)


1
ทำไมต้องใช้ tar และไม่ใช่แค่ mv (1) ไฟล์? หรือใช้ cp (1) หากคุณไม่ต้องการเสียต้นฉบับ?
vonbrand

@vonbrand หนึ่งอาจต้องการ rsync ผ่านเครือข่ายหนึ่งไฟล์ต่อเนื่องเดียว เร็วกว่าการซิงค์ไฟล์ขนาดเล็กลง 120k มันคือความแตกต่างระหว่างความเร็วเต็มคงที่กับเสียงสูงและต่ำ
mwm

คำตอบ:


70

tar ไม่บีบอัดตามค่าเริ่มต้นเพียงแค่ไม่เพิ่มตัวเลือกการบีบอัด:

tar cvf myfolder.tar myfolder

ฉันกำลังรวม Hennes' แสดงความคิดเห็นในคำตอบของฉันเนื่องจากมันเพิ่มข้อมูลที่เป็นประโยชน์:

TAR (เทปเก็บถาวร) เป็นโปรแกรมยูนิกซ์ที่ใช้ในการสร้าง   เก็บถาวรบนเทป เนื่องจากอุปกรณ์ทั้งหมดจะถือว่าเป็นไฟล์ภายใต้ระบบปฏิบัติการยูนิกซ์   ไม่ใช่เรื่องง่ายที่จะเขียนไปยังเทป แต่เป็นไฟล์แทน นี่เป็นเรื่องปกติ   เสร็จสิ้นด้วยแฟล็ก -f คำสั่ง tar cvf myfolder.tar myfolder หมายถึง   กลาสีเรือ reate, โวลต์ erbose ile filename_to_create   what_to_tar ไม่มีการบีบอัดในที่นี้ทุกที่ หอจดหมายเหตุกลา   (เป็นไฟล์) ซึ่งมักจะถูกบีบอัดโดยใช้โปรแกรมบีบอัดและ   ได้รับส่วนขยาย. Z (เช่น file.tar.Z) หลังจากนี้ก็รวม   ใน gtar ด้วยธง z


ที่จะเพิ่มโฟลเดอร์ย่อยและไฟล์ทั้งหมดซ้ำใน tar หรือไม่?
sergserg

2
@ เซอร์ใช่มันจะ
terdon

1
ขอบคุณ ฉันมักจะพยายามตอบทั้งสั้นและยาว เช่นเดียวกับใน "ใช่ / ไม่ใช่" จะไม่ทำงาน "สำหรับคำย่อและอธิบายว่าทำไมคำตอบที่ยาวกว่านั้น การมีพื้นหลังเป็นสาเหตุที่มักจะช่วยในอนาคต
Hennes

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

2

คำตอบ @terdon ถูกต้อง

แต่ฉันทำผิดพลาดเล็กน้อย tar cvf myfolder.tar.gz myfolder. ฉันต้องการชื่อลงท้ายสำหรับไฟล์ในพา ธ เดียวกัน tar.gz แม้ว่ามันจะไม่ถูกบีบอัดก็ตาม

ดังนั้นถ้าคุณใส่อะไรลงไป .gz, .z ในตอนท้ายของชื่อไฟล์ที่คุณพยายามที่จะ tar แอป tar จะเข้าใจว่าคุณต้องการใช้การบีบอัดและมันจะใช้กับสิ่งที่คุณใส่ (gz = gzip)

ดังนั้นหากคุณต้องการใช้ส่วนขยายแบบนั้น tar.gzตรวจสอบให้แน่ใจว่าใช้ธง --no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.