ການເຂົ້າໃຈຄໍາສັ່ງ Linux: Ar

ໂຄງການ GNU ar ສ້າງ , ດັດແກ້, ແລະສານສະກັດຈາກຮວບຮວມ. ຮວບຮວມ ແມ່ນໄຟລ໌ດຽວທີ່ຖືເອົາ ໄຟລ໌ ອື່ນໆທີ່ຢູ່ໃນໂຄງສ້າງທີ່ເຮັດໃຫ້ມັນສາມາດດຶງເອົາໄຟລ໌ເອກະສານຕົ້ນສະບັບ (ເອີ້ນວ່າ ສະມາຊິກ ຂອງຮວບຮວມ).

ພາບລວມ

ເນື້ອຫາຂອງແຟ້ມຕົ້ນສະບັບ, ໂຫມດ (ສິດ), ເວລາສະແດງ, ເຈົ້າຂອງ, ແລະກຸ່ມຖືກຮັກສາໄວ້ໃນຮວບຮວມແລະສາມາດຟື້ນຟູໄດ້ໃນການສະກັດເອົາ.

GNU ສາມາດເກັບຮັກສາເອກະສານທີ່ສະມາຊິກມີຊື່ຂອງຄວາມຍາວໃດກໍ່ຕາມ; ເຖິງຢ່າງໃດກໍ່ຕາມ, ອີງຕາມວິທີການ config ໃນລະບົບຂອງທ່ານ, ຂໍ້ກໍານົດກ່ຽວກັບຄວາມຍາວຂອງຊື່ສະມາຊິກອາດຖືກກໍານົດໄວ້ສໍາລັບຄວາມສອດຄ່ອງກັບຮູບແບບການເກັບຮັກສາໄວ້ດ້ວຍເຄື່ອງມືອື່ນໆ. ຖ້າມັນຢູ່, ຂອບເຂດຈໍາກັດແມ່ນມັກຈະມີ 15 ຕົວອັກສອນ (ປົກກະຕິຂອງຮູບແບບທີ່ກ່ຽວຂ້ອງກັບ a.out) ຫຼື 16 ຕົວອັກສອນ (ປົກກະຕິຂອງຮູບແບບທີ່ກ່ຽວຂ້ອງກັບ coff).

ar ເປັນພິຈາລະນາປະໂຫຍດສອງປະການເນື່ອງຈາກວ່າບັນດາຮວບຮວມຂອງປະເພດນີ້ແມ່ນຖືກນໍາໃຊ້ຫຼາຍທີ່ສຸດເປັນ ຫ້ອງສະມຸດທີ່ ຖືເອົາປະໂຫຍດທີ່ຕ້ອງການ.

ar ສ້າງດັດນີກັບສັນຍາລັກທີ່ກໍານົດໄວ້ໃນໂມດູນທີ່ສາມາດຍ້າຍໄດ້ໃນເອກະສານໃນເວລາທີ່ທ່ານລະບຸດັດແກ້ s . ເມື່ອສ້າງແລ້ວ, ດັດຊະນີນີ້ຈະຖືກປັບປຸງໃນເອກະສານໃນເວລາທີ່ ar ເຮັດໃຫ້ການປ່ຽນແປງເນື້ອຫາຂອງມັນ (ປະຫຍັດສໍາລັບການປະຕິບັດງານຂອງ q update). ຮວບຮວມທີ່ມີດັດຊະນີດັ່ງກ່າວເພີ່ມຄວາມໄວເຊື່ອມຕໍ່ກັບຫ້ອງສະຫມຸດແລະອະນຸຍາດໃຫ້ເຮັດວຽກໃນຫ້ອງສະຫມຸດເພື່ອໂທຫາເຊິ່ງກັນແລະກັນໂດຍບໍ່ມີການຈັດຕໍາແຫນ່ງຂອງພວກເຂົາໃນຮວບຮວມ.

ທ່ານອາດຈະໃຊ້ nm -s ຫຼື nm --print-armap ເພື່ອບອກຕາຕະລາງດັດຊະນີນີ້. ຖ້າຮວບຮວມບໍ່ມີຕາຕະລາງ, ຮູບແບບອື່ນຂອງ ar ເອີ້ນວ່າ ranlib ສາມາດຖືກນໍາໃຊ້ເພື່ອເພີ່ມຕາຕະລາງເທົ່ານັ້ນ.

GNU ar ຖືກອອກແບບມາໃຫ້ເຫມາະສົມກັບສອງສະຖານທີ່ທີ່ແຕກຕ່າງກັນ. ທ່ານສາມາດຄວບຄຸມກິດຈະກໍາຂອງຕົນໂດຍໃຊ້ທາງເລືອກເສັ້ນທາງຄໍາສັ່ງ, ເຊັ່ນ: ແນວພັນຕ່າງໆຂອງ ar ໃນ ລະບົບ Unix ; ຫຼື, ຖ້າທ່ານລະບຸຕົວເລືອກ ຄໍາສັ່ງ ດຽວ - M ຕົວດຽວ, ທ່ານສາມາດຄວບຄຸມມັນດ້ວຍສະຄິບທີ່ສະຫນອງໂດຍຜ່ານການປ້ອນຂໍ້ມູນມາດຕະຖານ, ເຊັ່ນໂຄງການ MRI `` ຫ້ອງສະຫມຸດ ''.

SYNOPSIS

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] archive [ member ]

OPTIONS

GNU ar ອະນຸຍາດໃຫ້ທ່ານປະສົມປະສານລະຫັດປະຕິບັດງານ p ແລະດັດແກ້ flags mod ໃນທຸກຄໍາສັ່ງ, ພາຍໃນການໂຕ້ຖຽງຄໍາສັ່ງຄັ້ງທໍາອິດ.

ຖ້າທ່ານຕ້ອງການ, ທ່ານອາດຈະເລີ່ມຕົ້ນການໂຕ້ຖຽງຄໍາສັ່ງຄັ້ງທໍາອິດດ້ວຍ dash.

ຫມາຍຈົດຫມາຍ p ລະບຸການດໍາເນີນການທີ່ຈະດໍາເນີນການ; ມັນອາດຈະເປັນສິ່ງໃດຫນຶ່ງຕໍ່ໄປນີ້, ແຕ່ທ່ານຕ້ອງລະບຸພຽງແຕ່ຫນຶ່ງໃນນັ້ນ:

d

ລຶບ ໂມດູນຈາກຮວບຮວມ. ລະບຸຊື່ຂອງໂມດູນທີ່ຈະລຶບເປັນ ສະມາຊິກ ... ; ຮວບຮວມແມ່ນບໍ່ສໍາຄັນຖ້າທ່ານລະບຸບໍ່ມີໄຟລ໌ທີ່ຈະລຶບ.

ຖ້າທ່ານກໍານົດຕົວດັດແກ້ v , ar list ທຸກ module ດັ່ງທີ່ມັນຖືກລຶບ.

m

ໃຊ້ການດໍາເນີນງານນີ້ເພື່ອ ຍ້າຍ ສະມາຊິກໃນການຮວບຮວມ.

ຄໍາສັ່ງຂອງສະມາຊິກໃນຮວບຮວມສາມາດເຮັດໃຫ້ຄວາມແຕກຕ່າງໃນວິທີການຕິດຕັ້ງໂຄງການໂດຍໃຊ້ຫ້ອງສະຫມຸດຖ້າສັນຍາລັກຖືກກໍານົດໃນຫຼາຍກວ່າຫນຶ່ງສະມາຊິກ.

ຖ້າບໍ່ມີການດັດແປງມີ "m", ສະມາຊິກໃດໆທີ່ທ່ານຊື່ໃນການໂຕ້ຖຽງຂອງ ສະມາຊິກ ຈະຖືກຍ້າຍໄປ ຮອດທ້າຍ ຂອງຮວບຮວມ; ທ່ານສາມາດໃຊ້ດັດແປງ, a , b , ຫຼື i ເພື່ອຍ້າຍໄປບ່ອນທີ່ຖືກຕ້ອງແທນ.

p

ພິມ ສະມາຊິກຂອງເອກະສານສະເພາະ, ກັບໄຟລ໌ຜົນຜະລິດມາດຕະຖານ. ຖ້າຕົວກໍານົດ v ຖືກກໍານົດ, ໃຫ້ສະແດງຊື່ສະມາຊິກກ່ອນທີ່ຈະຄັດລອກເນື້ອຫາຂອງມັນໃຫ້ອອກມາຕາມມາດຕະຖານ.

ຖ້າທ່ານລະບຸການໂຕ້ແຍ້ງຂອງ ສະມາຊິກ ບໍ່ມີ, ໄຟລ໌ທັງຫມົດໃນຮວບຮວມຈະຖືກພິມ.

q

ຕິດຕັ້ງດ່ວນ ; ໃນປະວັດສາດ, ເພີ່ມ ສະມາຊິກ ໄຟລ໌ ... ຈົນສຸດທ້າຍຂອງ ເອກະສານ , ໂດຍບໍ່ຕ້ອງກວດສອບການທົດແທນ.

ການດັດ ແປງ a , b , ແລະ ຂ້ອຍ ບໍ່ ມີຜົນກະທົບຕໍ່ການດໍາເນີນງານນີ້; ສະມາຊິກໃຫມ່ແມ່ນຢູ່ສະເຫມີໃນຕອນທ້າຍຂອງເອກະສານ.

ດັດແກ້ v ເຮັດໃຫ້ລາຍຊື່ບັນທຶກແຕ່ລະໄຟລ໌ດັ່ງທີ່ມັນຖືກຕື່ມ.

ນັບຕັ້ງແຕ່ຈຸດຂອງການປະຕິບັດງານນີ້ແມ່ນຄວາມໄວ, ດັດຊະນີຕາຕະລາງສັນຍາລັກຂອງຮວບຮວມບໍ່ໄດ້ຖືກປັບປຸງ, ເຖິງແມ່ນວ່າມັນມີຢູ່ແລ້ວ; ທ່ານສາມາດໃຊ້ ar s ຫຼື ranlib ຢ່າງຊັດເຈນເພື່ອປັບປຸງດັດສະນີຕາຕະລາງສັນຍາລັກ.

ຢ່າງໃດກໍຕາມ, ລະບົບທີ່ແຕກຕ່າງກັນຫຼາຍສົມມຸດ suppose append rebuild ດັດຊະນີ, ສະນັ້ນ GNU ar ປະຕິບັດ "q" ເປັນຄໍາສັບຄ້າຍຄືສໍາລັບ "r".

r

ໃສ່ ສະມາຊິກ ໄຟລ໌ ... ລົງໃນ ເອກະສານ (ມີ ການທົດແທນ ). ການປະຕິບັດງານນີ້ແຕກຕ່າງຈາກ q ໃນສະມາຊິກທີ່ມີຢູ່ກ່ອນຫນ້ານີ້ຖືກລຶບອອກຖ້າຊື່ຂອງພວກເຂົາກົງກັນກັບຜູ້ທີ່ຖືກເພີ່ມ.

ຖ້າຫາກວ່າຫນຶ່ງໃນໄຟລ໌ທີ່ມີຊື່ຢູ່ໃນ ສະມາຊິກ ... ບໍ່ມີ, ar ສະແດງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ, ແລະປ່ອຍໃຫ້ບັນດາສະມາຊິກທີ່ມີຢູ່ແລ້ວຂອງຮວບຮວມທີ່ມີຊື່ວ່າ.

ໂດຍຄ່າເລີ່ມຕົ້ນ, ສະມາຊິກໃຫມ່ຈະຖືກເພີ່ມໃນຕອນທ້າຍຂອງໄຟລ໌; ແຕ່ທ່ານອາດຈະໃຊ້ຫນຶ່ງຂອງດັດ ແປງ a , b , ຫຼື i ເພື່ອສະເຫນີຕໍາແຫນ່ງທີ່ກ່ຽວຂ້ອງກັບສະມາຊິກທີ່ມີຢູ່.

ເຄື່ອງມືດັດແກ້ທີ່ນໍາໃຊ້ກັບການປະຕິບັດງານນີ້ກໍານົດເສັ້ນຂອງຜົນຜະລິດສໍາລັບແຕ່ລະໄຟລ໌ທີ່ຖືກໃສ່, ພ້ອມກັບຫນຶ່ງຂອງຕົວອັກສອນ a ຫຼື r ເພື່ອຊີ້ບອກວ່າໄຟລ໌ໄດ້ຖືກເພີ່ມຫຼືບໍ່ມີການປ່ຽນແທນ.

t

ສະແດງ ຕາຕະລາງ ລາຍຊື່ເນື້ອຫາຂອງ ຮວບຮວມ , ຫຼືບັນດາໄຟລ໌ທີ່ມີຢູ່ໃນ ສະມາຊິກ ... ທີ່ມີຢູ່ໃນຮວບຮວມ. ໂດຍປົກກະຕິແລ້ວມີຊື່ສະມາຊິກເທົ່ານັ້ນ; ຖ້າທ່ານຕ້ອງການເບິ່ງໂຫມດ (ສິດ), ເວລາສະແດງ, ເຈົ້າຂອງ, ກຸ່ມ, ແລະຂະຫນາດທ່ານສາມາດຮ້ອງຂໍໃຫ້ມີການກໍານົດຕົວດັດແກ້ v .

ຖ້າທ່ານບໍ່ກໍານົດ ສະມາຊິກ , ໄຟລ໌ທັງຫມົດທີ່ຢູ່ໃນຮວບຮວມຈະຖືກລະບຸ.

ຖ້າມີຫຼາຍກວ່າຫນຶ່ງໄຟລ໌ທີ່ມີຊື່ດຽວກັນ (say, fie ) ໃນຮວບຮວມ (say ba ), ຫຼັງຈາກນັ້ນມີພຽງແຕ່ຕົວຢ່າງທໍາອິດ; ເພື່ອເບິ່ງໃຫ້ເຂົາເຈົ້າທັງຫມົດ, ທ່ານຕ້ອງໄດ້ຮຽກຮ້ອງໃຫ້ມີລາຍຊື່ທີ່ສົມບູນ - ໃນຕົວຢ່າງຂອງພວກເຮົາ, ar t ba .

x

ສະກັດ ສະມາຊິກ (ສະມາຊິກຊື່) ຈາກເອກະສານ. ທ່ານສາມາດໃຊ້ດັດແກ້ v ກັບການດໍາເນີນງານນີ້, ເພື່ອຂໍໃຫ້ມີລາຍຊື່ແຕ່ລະຊື່ຍ້ອນມັນສະກັດເອົາມັນ.

ຖ້າທ່ານບໍ່ກໍານົດ ສະມາຊິກ , ໄຟລ໌ທັງຫມົດໃນຮວບຮວມຈະຖືກສະກັດອອກ.

ຈໍານວນຫນຶ່ງຂອງ modifiers ( mod ) ສາມາດປະຕິບັດຕາມທັນທີ keyletter p , ເພື່ອກໍານົດການປ່ຽນແປງກ່ຽວກັບພຶດຕິກໍາຂອງການປະຕິບັດງານ:

a

ເພີ່ມໄຟລ໌ໃຫມ່ ຫຼັງຈາກ ທີ່ມີສະມາຊິກທີ່ມີຢູ່ແລ້ວຂອງຮວບຮວມ. ຖ້າທ່ານໃຊ້ດັດ ແກ້ , ຊື່ຂອງສະມາຊິກຮວບຮວມທີ່ມີຢູ່ຕ້ອງເປັນຕົວ ຢ່າງ ການໂຕ້ຖຽງ relpos , ກ່ອນທີ່ຂໍ້ກໍານົດການ ຮວບຮວມ .

b

ເພີ່ມໄຟລ໌ໃຫມ່ ກ່ອນ ທີ່ສະມາຊິກຂອງເອກະສານທີ່ມີຢູ່. ຖ້າທ່ານໃຊ້ດັດແກ້ b , ຊື່ຂອງສະມາຊິກຮວບຮວມທີ່ມີຢູ່ຕ້ອງມີຢູ່ໃນ ໂຕນຂື້ນ relpos , ກ່ອນທີ່ຂໍ້ກໍານົດຂອງການ ເກັບ ຂໍ້ມູນ. (ຄືກັນກັບ i ).

c

ສ້າງ ຮວບຮວມ. ຮວບຮວມ ທີ່ລະບຸໄວ້ຖືກສ້າງຂື້ນເລື້ອຍໆຖ້າບໍ່ມີ, ເມື່ອທ່ານຮ້ອງຂໍການປັບປຸງ. ແຕ່ການເຕືອນໄພແມ່ນອອກໄປເວັ້ນເສຍແຕ່ວ່າທ່ານກໍານົດລ່ວງຫນ້າວ່າທ່ານຄາດວ່າຈະສ້າງມັນ, ໂດຍໃຊ້ຕົວປ່ຽນແປງນີ້.

f

ຕັດຊື່ລົງໃນຮວບຮວມ. ໂດຍທົ່ວໄປ GNU ຈະອະນຸຍາດໃຫ້ຊື່ໄຟລ໌ຂອງຄວາມຍາວໃດໆ. ນີ້ຈະເຮັດໃຫ້ມັນສ້າງບັນດາຮວບຮວມທີ່ບໍ່ສາມາດເຂົ້າກັນໄດ້ກັບໂປລແກລມ native ໃນບາງລະບົບ. ຖ້ານີ້ເປັນຄວາມກັງວົນ, ດັດແກ້ f ສາມາດຖືກນໍາໃຊ້ເພື່ອຕັດຊື່ຊື່ແຟ້ມເມື່ອພວກເຂົາວາງໄວ້ໃນຮວບຮວມ.

i

ໃສ່ໄຟລ໌ໃຫມ່ ກ່ອນ ສະມາຊິກທີ່ມີຢູ່ຂອງເອກະສານເກົ່າ. ຖ້າທ່ານໃຊ້ດັດແກ້ i , ຊື່ຂອງສະມາຊິກຮວບຮວມທີ່ມີຢູ່ຕ້ອງມີຢູ່ໃນອາກິວເມນ relpos , ກ່ອນທີ່ຂໍ້ກໍານົດການ ຮວບຮວມ . (ຄືກັນກັບ b ).

l

ດັດແກ້ນີ້ຖືກຍອມຮັບແຕ່ບໍ່ຖືກນໍາໃຊ້.

N

ໃຊ້ພາລາມິເຕີ ນັບ ນີ້ຈະຖືກນໍາໃຊ້ຖ້າຫາກວ່າມີຫຼາຍລາຍການໃນຮວບຮວມທີ່ມີຊື່ດຽວກັນ. ຖອນຫຼືລຶບ ຈໍານວນ ຕົວຢ່າງຂອງຊື່ທີ່ໄດ້ຮັບຈາກຮວບຮວມ.

o

ປົກປັກຮັກສາວັນທີ ຕົ້ນສະບັບ ຂອງສະມາຊິກໃນເວລາທີ່ສະກັດເອົາພວກມັນ. ຖ້າທ່ານບໍ່ລະບຸດັດແກ້ນີ້, ໄຟລ໌ທີ່ຖືກສະກັດຈາກຮວບຮວມຈະຖືກປະທັບຕາດ້ວຍເວລາການສະກັດເອົາ.

P

ໃຊ້ຊື່ເສັ້ນເຕັມເມື່ອມີຊື່ທີ່ຖືກຕ້ອງໃນຮວບຮວມ. GNU ar ບໍ່ສາມາດສ້າງຮວບຮວມທີ່ມີຊື່ເສັ້ນທາງຢ່າງເຕັມທີ່ (ເອກະສານບັນທຶກດັ່ງກ່າວບໍ່ແມ່ນຄໍາຮ້ອງຂໍ POSIX), ແຕ່ຜູ້ສ້າງຮວບຮວມອື່ນໆສາມາດເຮັດໄດ້. ຕົວເລືອກນີ້ຈະເຮັດໃຫ້ GNU ar ກົງກັບຊື່ໄຟລ໌ໂດຍໃຊ້ຊື່ເສັ້ນທາງທີ່ສົມບູນເຊິ່ງສາມາດສະດວກໃນການສະກັດໄຟລ໌ດຽວຈາກຮວບຮວມທີ່ສ້າງໂດຍເຄື່ອງມືອື່ນ.

s

ຂຽນດັດສະນີເອກະສານວັດຖຸເຂົ້າໄປໃນຮວບຮວມ, ຫຼືປັບປຸງໃຫ້ທັນທີ່ມີຢູ່, ເຖິງແມ່ນວ່າບໍ່ມີການປ່ຽນແປງອື່ນໃດທີ່ຖືກເກັບໄວ້ໃນຮວບຮວມ. ທ່ານອາດຈະໃຊ້ປ້າຍດັດແກ້ນີ້ບໍ່ວ່າຈະມີການປະຕິບັດງານໃດໆ, ຫຼືຢູ່ຄົນດຽວ. ການດໍາເນີນງານກ່ຽວກັບຮວບຮວມແມ່ນທຽບເທົ່າກັບ ranlib ແລ່ນສຸດມັນ.

S

ບໍ່ສ້າງຕາຕະລາງສັນຍາລັກເກັບຂໍ້ມູນ. ນີ້ສາມາດເລັ່ງສ້າງຫ້ອງສະຫມຸດຂະຫນາດໃຫຍ່ໃນຂັ້ນຕອນຕ່າງໆ. ບໍ່ສາມາດໃຊ້ເອກະສານຮວບຮວມຜົນໄດ້ຮັບກັບການເຊື່ອມໂຍງ. ເພື່ອສ້າງຕາຕະລາງສັນຍາລັກ, ທ່ານຕ້ອງຍົກເລີກດັດແກ້ S ໃນການປະຕິບັດງານສຸດທ້າຍຂອງ ar , ຫຼືທ່ານຕ້ອງການ run ranlib ໃນຮວບຮວມ.

u

ປົກກະຕິແລ້ວ, ar r ... ເອົາໄຟລ໌ທັງຫມົດທີ່ລະບຸໄວ້ໃນຮວບຮວມ. ຖ້າທ່ານຕ້ອງການທີ່ຈະໃສ່ ເສພາະ ແຟ້ມທີ່ທ່ານບັນຊີລາຍຊື່ທີ່ມີໃຫມ່ກວ່າສະມາຊິກທີ່ມີຊື່ດຽວກັນ, ໃຫ້ໃຊ້ຕົວແກ້ໄຂນີ້. ດັດແກ້ u ແມ່ນອະນຸຍາດໃຫ້ໃຊ້ສໍາລັບການປະຕິບັດງານ r (ແທນທີ່). ໂດຍສະເພາະ, ການປະສົມປະສານ qu ບໍ່ໄດ້ຖືກອະນຸຍາດ, ນັບຕັ້ງແຕ່ການກວດສອບຕາຕະລາງເວລາຈະສູນເສຍຜົນປະໂຫຍດໄວຈາກການດໍາເນີນງານ q .

v

ການແກ້ໄຂນີ້ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດງານຂອງການປະຕິບັດງານ. ການປະຕິບັດງານຫຼາຍຄົນສະແດງ ຂໍ້ມູນເພີ່ມເຕີມ , ເຊັ່ນ: ໄຟລ໌ທີ່ຖືກປະຕິບັດ, ເມື່ອມີດັດແກ້ v .

V

ດັດແກ້ນີ້ສະແດງໃຫ້ເຫັນຈໍານວນເວີຊັນຂອງ ar .

ar ignores ຕົວເລືອກເບື້ອງຕົ້ນ -X32_64 , ສໍາລັບຄວາມສອດຄ່ອງກັບ AIX. ພຶດຕິກໍາທີ່ຜະລິດໂດຍຕົວເລືອກນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນສໍາລັບ GNU ar . ar ບໍ່ໄດ້ສະຫນັບສະຫນູນທາງເລືອກອື່ນໃດໆ -X ; ໂດຍສະເພາະ, ມັນບໍ່ສະຫນັບສະຫນູນ -X32 ຊຶ່ງເປັນຄ່າເລີ່ມຕົ້ນສໍາລັບ AIX ar .

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.