โปรแกรม GNU ar สร้าง , แก้ไขและคัดลอกจากคลัง ไฟล์ที่เก็บถาวร คือไฟล์เดียวที่เก็บ ไฟล์ อื่น ๆ ไว้ ในโครงสร้างซึ่งทำให้สามารถเรียกค้นไฟล์แต่ละไฟล์ (เรียกว่า สมาชิก ของไฟล์เก็บถาวร)
ภาพรวม
เนื้อหาไฟล์โหมด (สิทธิ์) เวลาประทับเจ้าของและกลุ่มจะถูกเก็บรักษาไว้ในที่เก็บข้อมูลและสามารถเรียกคืนข้อมูลเมื่อดึงข้อมูล
GNU ar สามารถเก็บข้อมูลที่เก็บไว้ซึ่งสมาชิกมีชื่อยาว ๆ ก็ได้ อย่างไรก็ตามขึ้นอยู่กับว่า ar ถูกกำหนดค่าไว้ในระบบของคุณอาจจำกัดความจำกัดความยาวของชื่อสมาชิกสำหรับความเข้ากันได้กับรูปแบบที่จัดเก็บไว้ด้วยเครื่องมืออื่น ๆ ถ้ามีอยู่ขีด จำกัด คือ 15 ตัวอักษร (ทั่วไปสำหรับรูปแบบที่เกี่ยวข้องกับ a.out) หรือ 16 ตัวอักษร (รูปแบบทั่วไปของ coff)
ar ถือว่าเป็นโปรแกรมอรรถประโยชน์แบบไบนารีเนื่องจากที่เก็บถาวรของประเภทนี้มักใช้เป็น ไลบรารี ที่ต้องใช้โปรแกรมย่อยที่จำเป็นโดยทั่วไป
ar สร้างดัชนีกับสัญลักษณ์ที่กำหนดไว้ในโมดูลอ็อบเจ็กต์ที่ relocatable ใน archive เมื่อคุณระบุ modifier s เมื่อสร้างดัชนีนี้จะได้รับการอัปเดตในที่เก็บเมื่อใดก็ตามที่ ar ทำการเปลี่ยนแปลงเนื้อหา (บันทึกสำหรับการดำเนินการอัพเดต q ) การจัดเก็บด้วยดัชนีดังกล่าวจะเพิ่มความเร็วในการเชื่อมโยงไปยังไลบรารีและช่วยให้รูทีนในห้องสมุดสามารถเรียกใช้ซึ่งกันและกันได้โดยไม่คำนึงถึงตำแหน่งในที่จัดเก็บ
คุณสามารถใช้ nm -s หรือ nm -print-armap เพื่อแสดงตารางดัชนีนี้ ถ้าเก็บข้อมูลขาดตารางรูปแบบอื่นของ ar ที่ เรียกว่า ranlib สามารถใช้เพื่อเพิ่มเฉพาะตารางได้
GNU ar ได้รับการออกแบบให้เข้ากันได้กับสิ่งอำนวยความสะดวกที่แตกต่างกันสองแห่ง คุณสามารถควบคุมกิจกรรมโดยใช้ตัวเลือกบรรทัดคำสั่งเช่น ar ต่างๆ ใน ระบบ Unix ; หรือหากคุณระบุบรรทัด คำสั่ง เดียวตัวเลือก -M คุณสามารถควบคุมได้ด้วยสคริปต์ที่จัดเตรียมผ่านทางอินพุตมาตรฐานเช่นโปรแกรมบรรณารักษ์ `` MRI ''
สรุป
ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ นับ ]] เก็บถาวร [ สมาชิก ... ]
ตัวเลือก
GNU ar ช่วยให้คุณสามารถผสมรหัสการดำเนินงาน p และ modifier flags mod ในลำดับใดก็ได้ภายในอาร์กิวเมนต์บรรทัดคำสั่งแรก
ถ้าคุณต้องการคุณอาจเริ่มต้นอาร์กิวเมนต์บรรทัดคำสั่งแรกด้วยเครื่องหมายขีดกลาง
p keyletter ระบุว่าการดำเนินการใดที่จะดำเนินการ อาจเป็นข้อใดข้อหนึ่งต่อไปนี้ แต่คุณต้องระบุเพียงอย่างใดอย่างหนึ่งดังต่อไปนี้:
d
ลบ โมดูลออกจากที่จัดเก็บ ระบุชื่อของโมดูลที่จะลบเป็น สมาชิก ... ; ที่เก็บถาวรจะถูกแตะต้องหากคุณไม่ระบุไฟล์ที่จะลบ
หากคุณระบุตัวปรับปรุง v , ar จะแสดงรายการแต่ละโมดูลตามที่ถูกลบ
ม.
ใช้การดำเนินการนี้เพื่อ ย้าย สมาชิกในที่เก็บถาวร
การสั่งซื้อสมาชิกในคลังสามารถสร้างความแตกต่างในการเชื่อมโยงโปรแกรมโดยใช้ไลบรารีถ้ามีการกำหนดสัญลักษณ์ไว้ในมากกว่าหนึ่งสมาชิก
หากไม่มีการใช้ตัวแก้ไขใด ๆ กับ "m" สมาชิกที่คุณตั้งชื่อไว้ในอาร์กิวเมนต์ สมาชิก จะถูกย้ายไปยัง จุดสิ้นสุด ของไฟล์จัดเก็บ คุณสามารถใช้ a , b หรือ i modifiers เพื่อย้ายไปยังสถานที่ที่ระบุแทนได้
พี
พิมพ์ ไฟล์ที่ระบุของไฟล์จัดเก็บลงในไฟล์เอาต์พุตมาตรฐาน ถ้าระบุ v modifier ให้แสดงชื่อสมาชิกก่อนที่จะคัดลอกเนื้อหาไปเป็นเอาต์พุตมาตรฐาน
หากคุณไม่ระบุอาร์กิวเมนต์ สมาชิก ไฟล์ทั้งหมดในไฟล์จัดเก็บจะถูกพิมพ์ออกมา
Q
ผนวกอย่างรวดเร็ว ; ในอดีตเพิ่ม สมาชิก ไฟล์ ... จนถึงจุดสิ้นสุดของ ไฟล์จัดเก็บข้อมูล โดยไม่ต้องตรวจสอบเพื่อแทนที่
ตัวปรับค่า a , b และ i ไม่มี ผลต่อการดำเนินการนี้ สมาชิกใหม่จะถูกวางไว้เสมอเมื่อสิ้นสุดการเก็บถาวร
ตัวปรับค่า v ทำให้รายการแต่ละไฟล์มีความต่อเนื่องกัน
เนื่องจากจุดของการดำเนินการนี้คือความเร็วดัชนีของตารางข้อมูลที่เก็บถาวรจะไม่ได้รับการอัพเดตแม้ว่าจะมีอยู่แล้วก็ตาม คุณสามารถใช้ s s หรือ ranlib อย่างชัดเจนเพื่อปรับปรุงดัชนีตารางสัญลักษณ์
อย่างไรก็ตามระบบที่แตกต่างกันมากเกินไปถือว่าผนวกใหม่สร้างดัชนีใหม่ดังนั้น GNU ar จึงใช้ "q" เป็นคำพ้องสำหรับ "r"
R
แทรก สมาชิก ไฟล์ ... ลงในที่ เก็บถาวร (พร้อมด้วยการ เปลี่ยน ) การดำเนินการนี้แตกต่างจาก q ว่าสมาชิกที่เคยอยู่ก่อนหน้านี้จะถูกลบออกถ้าชื่อของพวกเขาตรงกับที่เพิ่มเข้ามา
หากไม่มีไฟล์ใดชื่อ หนึ่ง ใน สมาชิก AR จะแสดงข้อความแสดงข้อผิดพลาดและไม่ทำให้สมาชิกใด ๆ ของที่เก็บถาวรตรงกับชื่อดังกล่าว
โดยค่าเริ่มต้นจะมีการเพิ่มสมาชิกใหม่ในตอนท้ายของไฟล์ แต่คุณอาจใช้ตัวปรับค่า A , B หรือ I เพื่อขอตำแหน่งเทียบกับสมาชิกที่มีอยู่
ตัวปรับค่า v ที่ ใช้กับการดำเนินการนี้จะแสดงบรรทัดของเอาต์พุตสำหรับแต่ละไฟล์ที่แทรกพร้อมกับตัวอักษร a หรือ r เพื่อระบุว่าไฟล์ถูกต่อท้าย (ไม่มีสมาชิกเก่าที่ถูกลบออก) หรือถูกแทนที่
เสื้อ
แสดง ตาราง แสดงเนื้อหาของที่ เก็บถาวร หรือไฟล์ที่อยู่ในรายการ สมาชิก ... ที่อยู่ในคลัง โดยปกติจะมีเฉพาะชื่อสมาชิกเท่านั้น ถ้าคุณต้องการดูโหมด (สิทธิ์) เวลาผู้เป็นเจ้าของกลุ่มและขนาดคุณสามารถร้องขอได้โดยระบุตัวแก้ไข v ด้วยเช่นกัน
หากคุณไม่ได้ระบุชื่อ สมาชิก ไฟล์ทั้งหมดในคลังจะปรากฏในรายการ
หากมีไฟล์มากกว่าหนึ่งไฟล์ที่มีชื่อเดียวกัน (เช่น fie ) ในไฟล์ archive (พูด BA ), ar t ba fie จะแสดงเฉพาะอินสแตนซ์แรกเท่านั้น เพื่อดูพวกเขาทั้งหมดคุณต้องขอรายชื่อที่สมบูรณ์ --- ในตัวอย่างของเรา ar t ba
x
ดึง สมาชิก (ชื่อ สมาชิก ) ออกจากที่เก็บถาวร คุณสามารถใช้ตัวแก้ไข v กับการดำเนินการนี้เพื่อขอให้ ar รายการแต่ละชื่อตามที่แยกออก
หากคุณไม่ได้ระบุ สมาชิก ไฟล์ทั้งหมดในไฟล์จะถูกแยกออก
หมายเลข modifiers ( mod ) อาจปฏิบัติตาม keyletter p เพื่อระบุรูปแบบการทำงานของการดำเนินการ:
เพิ่มไฟล์ใหม่ หลังจาก สมาชิกที่มีอยู่ในคลัง ถ้าคุณใช้ตัวแก้ไข a ชื่อของสมาชิกที่เก็บถาวรที่มีอยู่จะต้องเป็นอาร์กิวเมนต์ relpos ก่อนข้อกำหนดเกี่ยวกับการ เก็บถาวร
ข
เพิ่มไฟล์ใหม่ ก่อน สมาชิกที่มีอยู่ในคลัง ถ้าคุณใช้ตัวแก้ไข b ชื่อของสมาชิกที่เก็บถาวรจะต้องมีอยู่เป็นอาร์กิวเมนต์ relpos ก่อนข้อกำหนดเกี่ยวกับการ เก็บถาวร (เช่นเดียวกับ i )
ค
สร้าง ที่เก็บถาวร ที่ เก็บที่ ระบุจะถูกสร้างขึ้นเสมอหากไม่มีไฟล์ดังกล่าวเมื่อคุณขอรับการอัปเดต แต่คำเตือนจะถูกนำออกจนกว่าคุณจะระบุล่วงหน้าว่าคุณคาดว่าจะสร้างได้โดยใช้ตัวปรับแต่งนี้
ฉ
ตัดชื่อชื่อในที่เก็บถาวร GNU ar โดยปกติจะอนุญาตให้ใช้ชื่อไฟล์ที่มีความยาวได้ นี้จะทำให้มันสร้างที่เก็บซึ่งไม่เข้ากันได้กับโปรแกรม ar พื้นเมืองในบางระบบ ถ้าเป็นข้อกังวลตัวปรับแต่ง f อาจถูกใช้เพื่อตัดชื่อไฟล์ออกเมื่อใส่ไว้ในที่จัดเก็บ
ผม
แทรกไฟล์ใหม่ ก่อน สมาชิกที่มีอยู่ของที่เก็บถาวร ถ้าคุณใช้ตัวแก้ไข i ชื่อของสมาชิกที่เก็บถาวรจะต้องมีอยู่เป็นอาร์กิวเมนต์ relpos ก่อนข้อกำหนดเกี่ยวกับการ เก็บถาวร (เช่นเดียวกับ ข )
ล.
ปรับปรุงนี้ได้รับการยอมรับ แต่ไม่ได้ใช้
ยังไม่มีข้อความ
ใช้พารามิเตอร์ นับ นี่ใช้ถ้ามีหลายรายการในที่เก็บที่มีชื่อเดียวกัน ดึงข้อมูลหรือลบการ นับ อินสแตนซ์ของชื่อที่ระบุจากที่จัดเก็บ
โอ
รักษาวันที่ เดิม ของสมาชิกเมื่อแยกออก หากคุณไม่ได้ระบุตัวแก้ไขนี้ไฟล์ที่สกัดจากที่เก็บจะถูกประทับด้วยเวลาของการสกัด
P
ใช้ชื่อเส้นทางแบบเต็มเมื่อจับคู่ชื่อในที่เก็บถาวร GNU ar ไม่สามารถสร้างที่เก็บถาวรโดยใช้ชื่อเส้นทางแบบเต็ม (ที่เก็บดังกล่าวไม่ใช่การร้องเรียน POSIX) แต่ผู้สร้างที่เก็บถาวรอื่น ๆ สามารถทำได้ ตัวเลือกนี้จะทำให้ GNU ar ตรงกับชื่อไฟล์โดยใช้ชื่อพา ธ ที่สมบูรณ์ซึ่งสามารถทำได้สะดวกเมื่อแยกไฟล์ออกจากที่เก็บถาวรที่สร้างโดยเครื่องมืออื่น
s
เขียนดัชนีอ็อบเจ็กต์ลงในไฟล์จัดเก็บหรืออัปเดตไฟล์ที่มีอยู่แม้ว่าจะไม่มีการเปลี่ยนแปลงใด ๆ กับที่จัดเก็บก็ตาม คุณสามารถใช้ค่าสถานะการปรับค่านี้กับการดำเนินการใด ๆ หรือเพียงอย่างเดียว การเรียกใช้ ar บนที่เก็บข้อมูลเทียบเท่ากับการรัน ranlib ในไฟล์
S
อย่าสร้างตารางสัญลักษณ์ที่เก็บถาวร ซึ่งสามารถเพิ่มความเร็วในการสร้างห้องสมุดขนาดใหญ่ในหลายขั้นตอน ไม่สามารถใช้ที่เก็บข้อมูลที่เป็นผลลัพธ์กับ linker ในการสร้างตารางสัญลักษณ์คุณต้องละเว้นการปรับปรุง S ในการดำเนินการครั้งล่าสุดของ ar หรือคุณต้องรัน ranlib ในที่เก็บข้อมูล
ยู
โดยปกติ ar r ... แทรกไฟล์ทั้งหมดที่อยู่ในคลัง หากคุณต้องการแทรก เฉพาะ ไฟล์ที่มีชื่อที่ใหม่กว่าสมาชิกที่มีชื่อเดียวกันให้ใช้ตัวปรับแต่งนี้ ปรับปรุง u สามารถใช้ได้เฉพาะกับการดำเนินการ r (แทนที่) โดยเฉพาะอย่างยิ่งการรวม qu ไม่ได้รับอนุญาตเนื่องจากการตรวจสอบ timestamps จะสูญเสียความได้เปรียบความเร็วใด ๆ จากการดำเนินงาน q .
โวลต์
ตัวแก้ไขนี้ร้องขอเวอร์ชัน verbose ของการดำเนินการ การดำเนินการจำนวนมากแสดง ข้อมูลเพิ่มเติม เช่นชื่อไฟล์ที่ประมวลผลเมื่อมีการเพิ่มตัวแก้ไข v ลง
V
ตัวแก้ไขนี้แสดงหมายเลขเวอร์ชันของ ar
ar ละเว้นตัวเลือกเริ่มต้นที่สะกดไว้ -X32_64 เพื่อใช้งานร่วมกับ AIX ลักษณะการทำงานที่เกิดจากตัวเลือกนี้คือค่าดีฟอลต์สำหรับ GNU ar . ar ไม่สนับสนุนตัวเลือกอื่น ๆ -X ; โดยเฉพาะอย่างยิ่งไม่สนับสนุน -X32 ซึ่งเป็นค่าเริ่มต้นสำหรับ AIX ar
สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ