หากฉันมีไฟล์ขนาดใหญ่และจำเป็นต้องแยกเป็น 100 เมกาไบต์ฉันจะทำ
split -b 100m myImage.iso
ที่มักจะให้อะไรฉันชอบ
xaa
xab
xac
xad
และเพื่อให้พวกเขากลับมารวมกันฉันได้ใช้
cat x* > myImage.iso
ดูเหมือนว่าควรมีวิธีที่มีประสิทธิภาพมากกว่าการอ่านแต่ละบรรทัดของรหัสในกลุ่มของไฟล์ด้วยcat
และเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์ใหม่ เช่นเดียวกับการเปิดไฟล์สองไฟล์ให้ลบEOF
เครื่องหมายออกจากไฟล์แรกและเชื่อมต่อไฟล์เหล่านั้นโดยไม่ต้องผ่านเนื้อหาทั้งหมด
Windows / DOS มีคำสั่ง copy สำหรับไฟล์ไบนารี วิธีใช้ระบุว่าคำสั่งนี้ถูกออกแบบมาเพื่อให้สามารถรวมหลายไฟล์ได้ มันทำงานร่วมกับไวยากรณ์นี้: ( /b
สำหรับโหมดไบนารี)
copy /b file1 + file2 + file3 outputfile
มีบางสิ่งที่คล้ายกันหรือเป็นวิธีที่ดีกว่าในการเข้าร่วมไฟล์ขนาดใหญ่บน Linux มากกว่า cat?
ปรับปรุง
ดูเหมือนว่าcat
เป็นวิธีที่ถูกต้องและเป็นวิธีที่ดีที่สุดในการเข้าร่วมไฟล์ ดีใจที่รู้ว่าฉันใช้คำสั่งที่ถูกต้องมาตลอด :) ขอบคุณทุกคนสำหรับความคิดเห็นของคุณ
cat x*
พิจารณาการขยายตัวของ shell brace cat xa{a..g}
ซึ่งจะขยายลำดับที่ระบุเป็นcat
xaa xab xac xad xae xaf xag
cat x*
อย่างไร การตั้งค่าตำแหน่งที่ตั้งใหม่จะไม่ส่งผลกระทบsplit
ดังนั้นหากsplit
และcat x*
ถูกใช้ในระบบเดียวกันพวกเขาจะใช้งานได้หรือไม่
split.c
ใน GNU coreutils, static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";
คำต่อท้ายจะถูกสร้างขึ้นมาจากอาร์เรย์คงที่ของตัวอักษร: ส่วนต่อท้ายจะไม่ได้รับผลกระทบจากภาษา (แต่ฉันไม่คิดว่าสถานที่ใด ๆ ที่มีสติจะเรียงลำดับตัวอักษรพิมพ์เล็กใหม่ได้แม้กระทั่ง EBCDIC ก็ยังคงรักษาคำสั่งมาตรฐานไว้)
cat x*
เนื่องจากลำดับของไฟล์ขึ้นอยู่กับการตั้งค่าภาษาของคุณ เริ่มต้นพิมพ์ได้cat x
ดีกว่ากดEscแล้ว*
- คุณจะเห็นลำดับของไฟล์ที่ขยายและสามารถจัดเรียงใหม่ได้