Hiểu lệnh Linux: Ar

Chương trình GNU ar tạo , sửa đổi và trích xuất từ ​​lưu trữ. Một tệp lưu trữ là một tệp duy nhất chứa một bộ sưu tập các tệp khác trong cấu trúc để có thể truy xuất các tệp riêng lẻ ban đầu (được gọi là các thành viên của tệp lưu trữ).

Tổng quan

Nội dung, chế độ (quyền), dấu thời gian, chủ sở hữu và nhóm của tệp gốc được giữ nguyên trong lưu trữ và có thể được khôi phục khi trích xuất.

GNU ar có thể lưu trữ các thành viên lưu trữ có các tên có độ dài bất kỳ; tuy nhiên, tùy thuộc vào cách cấu hình ar trên hệ thống của bạn, giới hạn về độ dài tên thành viên có thể được áp dụng cho khả năng tương thích với các định dạng lưu trữ được duy trì với các công cụ khác. Nếu nó tồn tại, giới hạn thường là 15 ký tự (điển hình của các định dạng liên quan đến a.out) hoặc 16 ký tự (điển hình của các định dạng liên quan đến coff).

ar được coi là một tiện ích nhị phân vì các bản lưu trữ của loại này thường được sử dụng như các thư viện chứa các thường trình con cần thiết.

ar tạo một chỉ mục cho các ký hiệu được xác định trong các mô-đun đối tượng có thể định vị lại trong kho lưu trữ khi bạn chỉ định các trình sửa đổi s . Khi được tạo, chỉ mục này được cập nhật trong kho lưu trữ bất cứ khi nào ar thay đổi nội dung của nó (lưu cho hoạt động cập nhật q ). Một kho lưu trữ với chỉ mục như vậy tăng tốc liên kết đến thư viện và cho phép các thường trình trong thư viện gọi cho nhau mà không quan tâm đến vị trí của chúng trong kho lưu trữ.

Bạn có thể sử dụng nm -s hoặc nm --print-armap để liệt kê bảng chỉ mục này. Nếu một kho lưu trữ thiếu bảng, một dạng khác của ar gọi là ranlib có thể được sử dụng để chỉ thêm bảng.

GNU ar được thiết kế tương thích với hai cơ sở khác nhau. Bạn có thể kiểm soát hoạt động của nó bằng cách sử dụng các tùy chọn dòng lệnh, giống như các kiểu ar khác nhau trên các hệ thống Unix ; hoặc, nếu bạn chỉ định tùy chọn dòng lệnh -M , bạn có thể kiểm soát nó bằng một tập lệnh được cung cấp thông qua đầu vào tiêu chuẩn, như chương trình MRI `` thư viện ''.

TÓM TẮC

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] lưu trữ [ thành viên ...]

TÙY CHỌN

GNU ar cho phép bạn trộn mã hoạt động p và cờ sửa đổi mod theo thứ tự bất kỳ, trong đối số dòng lệnh đầu tiên.

Nếu bạn muốn, bạn có thể bắt đầu đối số dòng lệnh đầu tiên với dấu gạch ngang.

Bản ghi p chỉ định hoạt động nào cần thực hiện; nó có thể là bất kỳ điều nào sau đây, nhưng bạn phải chỉ định một trong số chúng:

d

Xóa các mô-đun khỏi kho lưu trữ. Chỉ định tên của các mô-đun sẽ bị xóa làm thành viên ...; kho lưu trữ bị ảnh hưởng nếu bạn chỉ định không có tệp nào để xóa.

Nếu bạn chỉ định v modifier, ar sẽ liệt kê mỗi module khi nó bị xóa.

m

Sử dụng thao tác này để di chuyển các thành viên trong một kho lưu trữ.

Thứ tự của các thành viên trong một kho lưu trữ có thể tạo sự khác biệt về cách các chương trình được liên kết bằng cách sử dụng thư viện, nếu một biểu tượng được định nghĩa trong nhiều hơn một thành viên.

Nếu không có công cụ sửa đổi nào được sử dụng với "m", thì bất kỳ thành viên nào bạn đặt tên trong các đối số thành viên đều được chuyển đến cuối lưu trữ; bạn có thể sử dụng công cụ sửa đổi a , b hoặc i để di chuyển chúng đến một địa điểm được chỉ định thay thế.

p

In các thành viên được chỉ định của tệp lưu trữ, vào tệp đầu ra tiêu chuẩn. Nếu trình sửa đổi v được chỉ định, hãy hiển thị tên thành viên trước khi sao chép nội dung của nó thành đầu ra tiêu chuẩn.

Nếu bạn chỉ định không có đối số thành viên , tất cả các tệp trong tệp lưu trữ sẽ được in.

q

Nối nhanh ; Về mặt lịch sử, thêm thành viên tệp ... vào cuối lưu trữ mà không kiểm tra để thay thế.

Các công cụ sửa đổi a , b , và i không ảnh hưởng đến hoạt động này; thành viên mới luôn được đặt ở cuối kho lưu trữ.

Công cụ sửa đổi v làm cho ar liệt kê mỗi tệp khi nó được nối thêm.

Vì điểm của hoạt động này là tốc độ, chỉ mục bảng biểu tượng của kho lưu trữ không được cập nhật, ngay cả khi nó đã tồn tại; bạn có thể sử dụng ar s hoặc ranlib một cách rõ ràng để cập nhật chỉ mục bảng biểu tượng.

Tuy nhiên, có quá nhiều hệ thống khác nhau giả định việc nối lại nhanh chóng chỉ mục, do đó, GNU ar thực hiện "q" làm từ đồng nghĩa cho "r".

r

Chèn thành viên tệp ... vào lưu trữ (có thay thế ). Hoạt động này khác với q trong đó mọi thành viên đã tồn tại trước đây sẽ bị xóa nếu tên của chúng khớp với những tên được thêm vào.

Nếu một trong các tệp được đặt tên trong thành viên ... không tồn tại, ar sẽ hiển thị thông báo lỗi và không bị xáo trộn bất kỳ thành viên hiện có nào của tệp lưu trữ khớp với tên đó.

Theo mặc định, các thành viên mới được thêm vào cuối tệp; nhưng bạn có thể sử dụng một trong các công cụ sửa đổi a , b , hoặc i để yêu cầu vị trí liên quan đến một số thành viên hiện có.

Công cụ sửa đổi v được sử dụng với thao tác này gợi ra một dòng đầu ra cho mỗi tệp được chèn, cùng với một trong các chữ cái a hoặc r để cho biết tệp đã được thêm vào (không có thành viên cũ bị xóa) hay thay thế.

t

Hiển thị một bảng liệt kê các nội dung của kho lưu trữ , hoặc của các tệp được liệt kê trong thành viên ... có trong kho lưu trữ. Thông thường chỉ có tên thành viên được hiển thị; nếu bạn cũng muốn xem các chế độ (quyền), dấu thời gian, chủ sở hữu, nhóm và kích thước, bạn có thể yêu cầu bằng cách chỉ định công cụ sửa đổi v .

Nếu bạn không chỉ định một thành viên , tất cả các tệp trong kho lưu trữ được liệt kê.

Nếu có nhiều hơn một tệp có cùng tên (ví dụ, fie ) trong một tệp lưu trữ (nói ba ), thì ar t ba fie chỉ liệt kê cá thể đầu tiên; để xem tất cả, bạn phải yêu cầu một danh sách đầy đủ --- trong ví dụ của chúng tôi, ar t ba .

x

Trích xuất thành viên (tên thành viên ) từ kho lưu trữ. Bạn có thể sử dụng công cụ sửa đổi v với thao tác này, để yêu cầu danh sách ar đó mỗi tên khi nó trích xuất nó.

Nếu bạn không chỉ định một thành viên , tất cả các tệp trong kho lưu trữ được trích xuất.

Một số công cụ sửa đổi ( mod ) có thể ngay lập tức tuân theo bản tin p , để chỉ định các biến thể về hành vi của một hoạt động:

một

Thêm tệp mới sau khi thành viên hiện có của lưu trữ. Nếu bạn sử dụng công cụ sửa đổi a , tên của một thành viên lưu trữ hiện có phải có mặt như đối số relpos , trước khi đặc tả lưu trữ .

b

Thêm tệp mới trước thành viên hiện có của lưu trữ. Nếu bạn sử dụng công cụ sửa đổi b , tên của một thành viên lưu trữ hiện có phải có mặt như đối số relpos , trước khi đặc tả lưu trữ . (giống như tôi ).

c

Tạo lưu trữ. Lưu trữ được chỉ định luôn được tạo nếu nó không tồn tại, khi bạn yêu cầu cập nhật. Nhưng một cảnh báo được đưa ra trừ khi bạn chỉ định trước rằng bạn mong muốn tạo nó, bằng cách sử dụng công cụ sửa đổi này.

f

Cắt bớt tên trong kho lưu trữ. GNU ar thường sẽ cho phép các tên tập tin có độ dài bất kỳ. Điều này sẽ làm cho nó tạo ra các lưu trữ không tương thích với chương trình ar gốc trên một số hệ thống. Nếu đây là một mối quan ngại, thì công cụ sửa đổi f có thể được sử dụng để cắt bớt tên tệp khi đặt chúng trong kho lưu trữ.

tôi

Chèn tệp mới trước thành viên hiện có của lưu trữ. Nếu bạn sử dụng công cụ sửa đổi i , tên của một thành viên lưu trữ hiện có phải có mặt như là đối số relpos , trước khi đặc tả lưu trữ . (giống như b ).

l

Công cụ sửa đổi này được chấp nhận nhưng không được sử dụng.

N

Sử dụng tham số đếm . Điều này được sử dụng nếu có nhiều mục trong kho lưu trữ có cùng tên. Trích xuất hoặc xóa số lượng cá thể của tên đã cho từ kho lưu trữ.

o

Bảo tồn ngày tháng ban đầu của các thành viên khi trích xuất chúng. Nếu bạn không chỉ định công cụ sửa đổi này, các tệp được trích xuất từ ​​kho lưu trữ sẽ được đóng dấu với thời gian trích xuất.

P

Sử dụng tên đường dẫn đầy đủ khi khớp tên trong lưu trữ. GNU ar không thể tạo bản lưu trữ có tên đường dẫn đầy đủ (lưu trữ như vậy không phải là khiếu nại POSIX), nhưng những người sáng tạo lưu trữ khác có thể. Tùy chọn này sẽ khiến GNU ar khớp tên tệp bằng cách sử dụng tên đường dẫn đầy đủ, có thể thuận tiện khi trích xuất một tệp từ một tệp lưu trữ được tạo bởi công cụ khác.

S

Viết chỉ mục tệp đối tượng vào lưu trữ hoặc cập nhật một tệp hiện có, ngay cả khi không có thay đổi nào khác được thực hiện cho lưu trữ. Bạn có thể sử dụng cờ sửa đổi này với bất kỳ thao tác nào, hoặc một mình. Chạy ar s trên một kho lưu trữ tương đương với chạy ranlib trên nó.

S

Không tạo bảng biểu tượng lưu trữ. Điều này có thể tăng tốc xây dựng một thư viện lớn trong một vài bước. Lưu trữ kết quả không thể được sử dụng với trình liên kết. Để xây dựng một bảng biểu tượng, bạn phải bỏ qua công cụ sửa đổi S trên lần thực thi cuối cùng của ar , hoặc bạn phải chạy ranlib trên kho lưu trữ.

bạn

Thông thường, ar r ... chèn tất cả các tệp được liệt kê vào lưu trữ. Nếu bạn muốn chèn chỉ những tệp bạn liệt kê mới hơn các thành viên hiện có cùng tên, hãy sử dụng công cụ sửa đổi này. Công cụ sửa đổi u chỉ được phép cho hoạt động r (thay thế). Cụ thể, qu kết hợp không được phép, vì việc kiểm tra dấu thời gian sẽ mất bất kỳ lợi thế tốc độ nào từ hoạt động q .

v

Công cụ sửa đổi này yêu cầu phiên bản tiết của một hoạt động. Nhiều hoạt động hiển thị thông tin bổ sung , chẳng hạn như tên tệp được xử lý, khi sửa đổi v được nối thêm.

V

Công cụ sửa đổi này hiển thị số phiên bản của ar .

ar bỏ qua tùy chọn ban đầu được đánh vần -X32_64 , để tương thích với AIX. Hành vi được tạo ra bởi tùy chọn này là mặc định cho GNU ar . ar không hỗ trợ bất kỳ tùy chọn -X nào khác; đặc biệt, nó không hỗ trợ -X32 là mặc định cho AIX ar .

Quan trọng: Sử dụng lệnh man ( % man ) để xem cách một lệnh được sử dụng trên máy tính cụ thể của bạn.