Κατανόηση της εντολής Linux: Ar

Το πρόγραμμα GNU ar δημιουργεί , τροποποιεί και αποσπάσματα αρχείων. Ένα αρχείο είναι ένα αρχείο που περιέχει μια συλλογή από άλλα αρχεία σε μια δομή που καθιστά δυνατή την ανάκτηση των αρχικών μεμονωμένων αρχείων (που ονομάζονται μέλη του αρχείου).

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Τα περιεχόμενα των αρχικών αρχείων, ο τρόπος λειτουργίας (δικαιώματα), η χρονική σήμανση, ο κάτοχος και η ομάδα διατηρούνται στο αρχείο και μπορούν να αποκατασταθούν στην εξαγωγή.

Το GNU ar μπορεί να διατηρεί αρχεία τα μέλη των οποίων έχουν ονόματα οποιουδήποτε μήκους. Ωστόσο, ανάλογα με τον τρόπο με τον οποίο έχει ρυθμιστεί το σύστημα στο σύστημά σας, μπορεί να επιβληθεί όριο για το μήκος του μέλους-μέλους για συμβατότητα με μορφές αρχειοθέτησης που διατηρούνται με άλλα εργαλεία. Εάν υπάρχει, το όριο είναι συχνά 15 χαρακτήρες (τυπικοί τύποι που σχετίζονται με a.out) ή 16 χαρακτήρες (τυπικοί τύποι που σχετίζονται με το coff).

ar θεωρείται ένα δυαδικό βοηθητικό πρόγραμμα επειδή αρχεία αυτού του είδους χρησιμοποιούνται συχνότερα ως βιβλιοθήκες που κατέχουν κοινώς απαραίτητες υπορουτίνες.

ar δημιουργεί ένα ευρετήριο στα σύμβολα που ορίζονται σε αρχεία μετατοπίσιμων αντικειμένων στο αρχείο όταν καθορίζετε τον τροποποιητή s . Μόλις δημιουργηθεί, αυτό το ευρετήριο ενημερώνεται στο αρχείο κάθε φορά που πραγματοποιείται αλλαγή στο περιεχόμενό του (εκτός από τη λειτουργία q update). Ένα αρχείο με ένα τέτοιο ευρετήριο επιταχύνει τη σύνδεση με τη βιβλιοθήκη και επιτρέπει στις ρουτίνες στη βιβλιοθήκη να καλούν ο ένας τον άλλον ανεξάρτητα από την τοποθέτησή τους στο αρχείο.

Μπορείτε να χρησιμοποιήσετε nm -s ή nm -print-armap για να απαριθμήσετε αυτόν τον πίνακα ευρετηρίου. Εάν ένα αρχείο δεν έχει το τραπέζι, μπορεί να χρησιμοποιηθεί μια άλλη μορφή του λεγόμενου ranlib για να προσθέσετε μόνο το τραπέζι.

Το GNU ar έχει σχεδιαστεί ώστε να είναι συμβατό με δύο διαφορετικές εγκαταστάσεις. Μπορείτε να ελέγξετε τη δραστηριότητά του χρησιμοποιώντας επιλογές γραμμής εντολών, όπως οι διαφορετικές ποικιλίες ar σε συστήματα Unix . ή, αν καθορίσετε την επιλογή γραμμής εντολών single -M , μπορείτε να τον ελέγξετε με ένα σενάριο που παρέχεται μέσω πρότυπης εισόδου, όπως το πρόγραμμα "βιβλιοθηκονόμου" του MRI.

ΣΥΝΟΨΗ

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] αρχείο [ μέλος ...]

ΕΠΙΛΟΓΕΣ

Το GNU ar σας επιτρέπει να αναμίξετε τον κώδικα λειτουργίας p και mod modiers flags mod σε οποιαδήποτε σειρά, μέσα στο πρώτο όρισμα της γραμμής εντολών.

Αν θέλετε, μπορείτε να ξεκινήσετε το πρώτο παράγωγο γραμμής εντολών με παύλα.

Το p keyletter καθορίζει τη λειτουργία που πρέπει να εκτελεστεί. μπορεί να είναι οποιοδήποτε από τα παρακάτω, αλλά πρέπει να καθορίσετε μόνο ένα από αυτά:

ρε

Διαγραφή ενοτήτων από το αρχείο. Καθορίστε τα ονόματα των ενοτήτων που θα διαγραφούν ως μέλη ... το αρχείο είναι ανέπαφο εάν δεν καθορίσετε κανένα αρχείο που να διαγραφεί.

Αν καθορίζετε τον τροποποιητή v , το ar απαριθμεί κάθε ενότητα καθώς διαγράφεται.

m

Χρησιμοποιήστε αυτήν τη λειτουργία για να μετακινήσετε τα μέλη σε ένα αρχείο.

Η παραγγελία των μελών σε ένα αρχείο μπορεί να κάνει τη διαφορά στον τρόπο με τον οποίο τα προγράμματα συνδέονται με τη βιβλιοθήκη, εάν έχει οριστεί σύμβολο σε περισσότερα από ένα μέλη.

Αν δεν χρησιμοποιούνται τροποποιητές με το "m", τα μέλη που ονομάζετε στα αρχεία μελών μετακινούνται στο τέλος του αρχείου. μπορείτε να χρησιμοποιήσετε τους τροποποιητές a , b ή i για να τις μετακινήσετε σε συγκεκριμένο μέρος.

Π

Εκτυπώστε τα καθορισμένα μέλη του αρχείου στο τυπικό αρχείο εξόδου. Εάν ο modifikator v έχει οριστεί, δείξτε το όνομα μέλους πριν αντιγράψετε τα περιεχόμενά του στην τυπική έξοδο.

Αν δεν καθορίσετε κανένα στοιχείο , όλα τα αρχεία του αρχείου εκτυπώνονται.

q

Γρήγορη προσάρτηση . Ιστορικά, προσθέστε το μέλος αρχείων ... στο τέλος του αρχείου , χωρίς να ελέγξετε την αντικατάσταση.

Οι τροποποιητές a , b και i δεν επηρεάζουν αυτή τη λειτουργία. τα νέα μέλη τοποθετούνται πάντα στο τέλος του αρχείου.

Ο τροποποιητής v κάνει κατάλογο κάθε αρχείο, όπως αυτό είναι προσαρτημένο.

Δεδομένου ότι το σημείο αυτής της λειτουργίας είναι ταχύτητα, ο δείκτης του πίνακα συμβόλων του αρχείου δεν ενημερώνεται, ακόμα κι αν υπήρχε ήδη. μπορείτε να χρησιμοποιήσετε ρητά ή ρητά να ενημερώσετε το ευρετήριο πίνακα συμβόλων.

Ωστόσο, πάρα πολλά διαφορετικά συστήματα υποθέτουν ότι το γρήγορο append ανοικοδομεί τον ευρετήριο, οπότε το GNU implements "q" ως συνώνυμο του "r".

r

Εισάγετε το μέλος αρχείων ... στο αρχείο (με αντικατάσταση ). Αυτή η ενέργεια διαφέρει από το q στο ότι τα υπάρχοντα μέλη διαγράφονται εάν τα ονόματά τους ταιριάζουν με εκείνα που προστίθενται.

Εάν ένα από τα αρχεία που ονομάζονται στο μέλος ... δεν υπάρχει, εμφανίζει ένα μήνυμα σφάλματος και αφήνει αδιατάρακτα τα υπάρχοντα μέλη του αρχείου που ταιριάζουν με αυτό το όνομα.

Από προεπιλογή, νέα μέλη προστίθενται στο τέλος του αρχείου. αλλά μπορείτε να χρησιμοποιήσετε έναν από τους τροποποιητές a , b ή i για να ζητήσετε τοποθέτηση σε σχέση με κάποιο υπάρχον μέλος.

Ο τροποποιητής v που χρησιμοποιείται με αυτήν τη λειτουργία ενεργοποιεί μια γραμμή εξόδου για κάθε αρχείο που έχει εισαχθεί, μαζί με ένα από τα γράμματα a ή r για να υποδείξει αν το αρχείο έχει προστεθεί (δεν έχει διαγραφεί παλιό μέλος) ή έχει αντικατασταθεί.

t

Εμφανίστε έναν πίνακα με τα περιεχόμενα του αρχείου ή εκείνα των αρχείων που αναφέρονται στο μέλος ... που υπάρχουν στο αρχείο. Κανονικά, εμφανίζεται μόνο το όνομα μέλους. αν θέλετε επίσης να δείτε τις λειτουργίες (δικαιώματα), τη χρονική σφραγίδα, τον κάτοχο, την ομάδα και το μέγεθος, μπορείτε να ζητήσετε αυτό, καθορίζοντας επίσης τον τροποποιητή v .

Εάν δεν καθορίσετε ένα μέλος , όλα τα αρχεία του αρχείου παρατίθενται.

Εάν υπάρχουν περισσότερα από ένα αρχεία με το ίδιο όνομα (π.χ., είτε) σε ένα αρχείο (ας πούμε), εμφανίζεται μόνο η πρώτη φορά. για να τα δείτε όλα, θα πρέπει να ζητήσετε μια πλήρη λίστα --- στο παράδειγμά μας, ar t ba .

Χ

Εξαγωγή μελών (όνομα μέλους ) από το αρχείο. Μπορείτε να χρησιμοποιήσετε τον modifier v με αυτή τη λειτουργία, για να ζητήσετε να εμφανίζεται το κάθε όνομα καθώς το εξάγει.

Αν δεν καθορίσετε ένα μέλος , εξάγονται όλα τα αρχεία του αρχείου.

Ορισμένοι τροποποιητές ( mod ) μπορούν αμέσως να ακολουθήσουν το p keyletter, για να καθορίσουν τις παραλλαγές της συμπεριφοράς μιας επιχείρησης:

ένα

Προσθέστε νέα αρχεία μετά από ένα υπάρχον μέλος του αρχείου. Αν χρησιμοποιείτε τον τροποποιητή a , το όνομα ενός υπάρχοντος μέλους αρχειοθέτησης πρέπει να υπάρχει ως το επιχείρημα relpos , πριν από τις προδιαγραφές του αρχείου .

σι

Προσθέστε νέα αρχεία πριν από ένα υπάρχον μέλος του αρχείου. Αν χρησιμοποιείτε τον τροποποιητή b , το όνομα ενός υπάρχοντος μέλους αρχειοθετήσεως πρέπει να υπάρχει ως το επιχείρημα relpos , πριν από τις προδιαγραφές του αρχείου . (ίδιο με το i ).

ντο

Δημιουργήστε το αρχείο. Το συγκεκριμένο αρχείο δημιουργείται πάντα αν δεν υπήρχε, όταν ζητήσατε μια ενημέρωση. Αλλά μια προειδοποίηση εκδίδεται εκτός αν ορίζετε εκ των προτέρων ότι περιμένετε να το δημιουργήσετε, χρησιμοποιώντας αυτόν τον τροποποιητή.

φά

Περικοπή των ονομάτων στο αρχείο. Το GNU ar επιτρέπει κανονικά ονόματα αρχείων οποιουδήποτε μήκους. Αυτό θα προκαλέσει τη δημιουργία αρχείων που δεν είναι συμβατά με το εγγενές πρόγραμμα ar σε ορισμένα συστήματα. Αν αυτό είναι ανησυχητικό, ο τροποποιητής f μπορεί να χρησιμοποιηθεί για την περικοπή των ονομάτων των αρχείων κατά την τοποθέτησή τους στο αρχείο.

Εγώ

Εισάγετε νέα αρχεία πριν από ένα υπάρχον μέλος του αρχείου. Εάν χρησιμοποιείτε τον τροποποιητή i , το όνομα ενός υπάρχοντος μέλους αρχειοθέτησης πρέπει να είναι παρόν ως το επιχείρημα relpos , πριν από τις προδιαγραφές του αρχείου . (ίδιο με το β ).

μεγάλο

Αυτός ο τροποποιητής είναι αποδεκτός αλλά δεν χρησιμοποιείται.

Ν

Χρησιμοποιεί την παράμετρο μέτρησης . Αυτό χρησιμοποιείται όταν υπάρχουν πολλαπλές καταχωρήσεις στο αρχείο με το ίδιο όνομα. Εξαγάγετε ή διαγράψτε τον αριθμό εμφάνισης του δεδομένου ονόματος από το αρχείο.

o

Διατηρήστε τις αρχικές ημερομηνίες των μελών κατά την εξαγωγή τους. Εάν δεν καθορίσετε αυτόν τον τροποποιητή, τα αρχεία που εξάγονται από το αρχείο είναι σφραγισμένα με το χρόνο της εξαγωγής.

Π

Χρησιμοποιήστε το πλήρες όνομα διαδρομής όταν ταιριάζουν ονόματα στο αρχείο. Το GNU ar δεν μπορεί να δημιουργήσει αρχεία με πλήρες όνομα διαδρομής (τέτοια αρχεία δεν είναι καταγγελία POSIX), αλλά άλλοι δημιουργοί αρχείων μπορούν. Αυτή η επιλογή θα αναγκάσει το GNU ar να ταιριάζει με τα ονόματα αρχείων χρησιμοποιώντας ένα πλήρες όνομα διαδρομής, το οποίο μπορεί να είναι βολικό όταν εξάγετε ένα μόνο αρχείο από ένα αρχείο που δημιουργήθηκε από ένα άλλο εργαλείο.

μικρό

Γράψτε ένα ευρετήριο αντικειμένων-αρχείου στο αρχείο ή ενημερώστε μια υπάρχουσα, ακόμη και αν δεν γίνει άλλη αλλαγή στο αρχείο. Μπορείτε να χρησιμοποιήσετε αυτήν τη σημαία τροποποιητή είτε με οποιαδήποτε λειτουργία είτε μόνος σας. Το τρέξιμο σε ένα αρχείο είναι ισοδύναμο με το τρέξιμο σε αυτό.

μικρό

Μη δημιουργείτε πίνακα συμβόλων αρχειοθέτησης. Αυτό μπορεί να επιταχύνει τη δημιουργία μιας μεγάλης βιβλιοθήκης σε διάφορα βήματα. Το αρχείο που προκύπτει δεν μπορεί να χρησιμοποιηθεί με το linker. Για να δημιουργήσετε έναν πίνακα συμβόλων, πρέπει να παραλείψετε τον τροποποιητή S στην τελευταία εκτέλεση του ar ή πρέπει να εκτελέσετε ranlib στο αρχείο.

u

Κανονικά, ar r ... εισάγει όλα τα αρχεία που περιλαμβάνονται στο αρχείο. Εάν θέλετε να εισαγάγετε μόνο εκείνα των αρχείων που αναφέρονται πιο πρόσφατα από τα υπάρχοντα μέλη με τα ίδια ονόματα, χρησιμοποιήστε αυτόν τον τροποποιητή. Ο τροποποιητής u επιτρέπεται μόνο για τη λειτουργία r (αντικαταστήστε). Συγκεκριμένα, ο συνδυασμός qu δεν επιτρέπεται, αφού ο έλεγχος των χρονικών σημείων θα χάσει οποιοδήποτε πλεονέκτημα ταχύτητας από τη λειτουργία q .

v

Αυτός ο τροποποιητής ζητά τη λεπτομερή έκδοση μιας ενέργειας. Πολλές λειτουργίες εμφανίζουν πρόσθετες πληροφορίες , όπως τα επεξεργασμένα ονόματα αρχείων, όταν προσαρμόζεται ο τροποποιητής v .

V

Αυτός ο τροποποιητής εμφανίζει τον αριθμό έκδοσης του αρ .

ar αγνοεί μια αρχική επιλογή που έχει γραφτεί -X32_64 , για συμβατότητα με το AIX. Η συμπεριφορά που παράγεται από αυτήν την επιλογή είναι η προεπιλογή για το GNU ar . ar δεν υποστηρίζει καμία από τις άλλες επιλογές -X . Ειδικότερα, δεν υποστηρίζει το -X32 που είναι το προεπιλεγμένο για το AIX ar .

Σημαντικό: Χρησιμοποιήστε την εντολή man ( % man ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.