rad*_*164 7 executable filenames command
我rename.ul
在我的 Ubuntu 机器上找到了一个命令。它来自util-linux
包。
这对我来说很奇怪,因为我很少看到带有扩展名的可执行文件。此外,由于文件已编译,因此似乎没有必要。
是否有任何历史或技术原因?
我也很困惑,因为我找不到与此扩展名相关的文件格式。
扩展是为了避免与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)。
正如评论者所猜测的那样,这可能是Debian Alternatives 系统在起作用。
如果一个发行版有多个包含同名文件的包,包的创建者需要知道它,并且需要有一种机制供管理员选择他们想要使用其中的一个。因此,所有冲突的文件都被重命名(通常带有后缀,但这可以在包元数据中指定)并且原始文件名将成为指向/etc/alternatives/<original filename>
. 反过来,这将是另一个符号链接,指向现在重命名的文件之一。
系统管理员可以使用该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
来选择您希望将哪个已安装的编辑器作为默认编辑器,一旦您以这种方式做出选择,自动优先级将不会覆盖它。
归档时间: |
|
查看次数: |
2356 次 |
最近记录: |