rename.ul
私のUbuntuコンピュータでコマンドを見つけました。それはutil-linux
パッケージから出てきます。
拡張子を持つ実行可能ファイルをほとんど見ることができないので、これは私にとって奇妙です。また、ファイルがコンパイルされるため、これは必要ないようです。
これには歴史的、技術的な理由がありますか?
私もこの拡張子に関連付けられているファイルの種類が見つからず、混乱しています。
答え1
rename
この拡張は、Debian で使用できる多くのコマンドとの競合を避けるためです。この変化2007年に開発されました。Debian のバグ #439647:
/usr/bin/renameは代替システムによって管理されています(デフォルトではPerlバージョンが使用されています)。 util-linux 2.13〜rc3-8は、代わりに登録する代わりに独自のバイナリをインストールします。
これに応じてutil-linux
rename
名前がrename.ul
。
それにもかかわらず、rename.ul
構文はPerlバリアントとは大きく異なり、代替システムにはデフォルトで追加されません(参照)Debian のバグ #439935)。
答え2
コメント作成者が推測したように、これは次のとおりです。Debian 代替システム行動中。
ディストリビューションに同じ名前のファイルを含む複数のパッケージがある場合、パッケージ作成者はそれを知っておく必要があり、管理者が使用するパッケージを選択するメカニズムが必要です。したがって、競合するすべてのファイルの名前が変更され(通常はサフィックスが付けられますが、これはパッケージメタデータで指定される可能性があります)、元のファイル名がの点になります/etc/alternatives/<original filename>
。これは、名前が変更されたファイルの1つを指す別のシンボリックリンクになりました。ファイル。
システム管理者はこのupdate-alternatives
ツールを使用して、元の名前が指すファイルのバージョンを選択できます。他のバージョンは新しい名前で引き続きアクセスできます。
このupdate-alternatives
ツールは「一連の」エントリを処理できるため、レガシーとOpenBSD netcatの両方がインストールされており、sudo update-alternatives --config nc
デフォルトをどちらにも切り替えると、対応するマニュアルページ名も切り替えられます。
一般的な例はです/usr/bin/editor
。 Debianスタイルのシステムでは、他のプログラムが「システムのデフォルトのテキストエディタ」を取得するために使用できるシンボリックリンクです。最小インストール後は、デフォルトでテキストファイルを設定できるため、nano
マニュアルページが開いてeditor example.txt
表示されます。nano
man editor
nano
ただし、代替システム(たとえば)に優先順位の高いエディタをインストールすると、joe
自動的に新しいデフォルトになるため、このエディタが使用さeditor example.txt
れ、マニュアルページも表示されます。また、それを使用してインストールされたエディタをデフォルトエディタとして選択できます。この方法で選択すると、自動優先順位はそれを無視しません。joe
man editor
joe
sudo update-alternatives --config editor