arコマンドはメンバーを移動します(例はありますか?)

arコマンドはメンバーを移動します(例はありますか?)

私はアーカイブを作成または管理するためのLinux / UNIXの「ar」コマンドについて話しています。

マニュアルによると、「m」修飾子を使用してアーカイブのメンバーを移動できます。しかし、何の例もありません。

マニュアルページには、「修飾子なしでmを使用すると、メンバー引数に名前を付けたすべてのメンバーがアーカイブの末尾に移動されます」と記載されているので、次のように動作する必要があると思います(そして成功しました)。

$ ar -t out.a
a.txt
b.txt
c.txt
d.txt
$ ar m out.a a.txt
$ ar -t out.a
b.txt
c.txt
d.txt
a.txt
$

"a.txt"ファイルが最後に正常に移動されました。

しかし、「a、b、またはi修飾子を使用して特定の位置に移動できます」に関しては問題があります。

$ ar t out.a
a.txt
b.txt
c.txt
d.txt
$ ar ma out.a a.txt
ar: a.txt: File format not recognized
$

「a」は前方に移動し、「b」は後方に移動し、「i」はインデックスに移動することを意味すると思いましたが、修飾語の後に数字があるかもしれません。だから私は次のことを試みます:

$ ar t out.a
a.txt
b.txt
c.txt
d.txt
$ ar ma 1 out.a a.txt
$ ar t out.a
b.txt
c.txt
d.txt
a.txt
$

「a.txt」はまだ終わりに移動します!

ファイルを後ろに移動したい場合は、まだ最後に移動されます。

$ ar t out.a
a.txt
b.txt
c.txt
d.txt
$ ar mb 1 out.a c.txt
$ ar t out.a
a.txt
b.txt
d.txt
c.txt
$

では、どのように使用しますか?

ベストアンサー1

~からar私のOpenBSDシステムのGNUドキュメントa修飾子を説明してください。

a   Add new files after an existing member of the archive.  If you use
    the modifier a, the name of an existing archive member must be
    present as the relpos argument, before the archive specification.

つまり、指定する必要があります。名前アイテムを以降(または前)に移動するには、メンバーのアイテムをアーカイブしてください  bPOSIX仕様 arposnameこれに関する詳細は、説明(GNU文書に記載されている)に記載されています。relpos

posname

相対位置指定に使用されるアーカイブのファイル名。オプション-mとを参照してください-r

以下をテストします(と標準オプションを使用-)。

$ ar -t out.a
a.txt
b.txt
c.txt
d.txt

a.txt次に移動した後c.txt

$ ar -m -a c.txt out.a a.txt
$ ar -t out.a
b.txt
c.txt
a.txt
d.txt

このi修飾子はのエイリアスですb

POSIXでは、次のように言及しています。

-i

オペランドと呼ばれるアーカイブのファイルの前にposname(と同じ)アーカイブの新しいファイルを配置します-b

おすすめ記事