basename
是一个命令行实用程序,可以从给定的文件名中删除目录和尾随后缀。
使用basename
命令#
The basename
命令支持两种语法格式:
basename NAME [SUFFIX]
basename OPTION... NAME...
basename
获取文件名并打印文件名的最后一个部分。 (可选)它还可以删除任何尾随后缀。这是一个简单的命令,仅接受几个选项。
最基本的示例是打印删除了前导目录的文件名:
basename /etc/passwd
输出将包含文件名:
passwd
The basename
命令删除任何尾随/
人物:
basename /usr/local/
basename /usr/local
两个命令将产生相同的输出:
local
local
默认情况下,每个输出行以换行符结尾。结束行NUL
, 使用-z
(--zero
) 选项。
The basename
命令可以接受多个名称作为参数。为此,请使用以下命令调用该命令-a
(--multiple
) 选项,后跟由空格分隔的文件列表。
例如,要获取文件名/etc/密码
and /etc/影子你会运行:
basename -a /etc/passwd /etc/shadow
passwd
shadow
删除尾随后缀#
要从文件名中删除任何尾随后缀,请将后缀作为第二个参数传递:
basename /etc/hostname name
host
一般情况下,该功能用于去除文件扩展名:
basename /etc/sysctl.conf .conf
sysctl
删除尾随后缀的另一种方法是使用-s
(--suffix=SUFFIX
) 选项:
basename -s .conf /etc/sysctl.conf
sysctl
此语法形式允许您从多个名称中删除任何尾随后缀:
basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf
sysctl
sudo
Example #
以下示例展示了如何使用basename
bash 中的命令for loop
to 重命名所有文件通过将文件扩展名从“.jpeg”替换为“.jpg”,在当前目录中以“.jpeg”结尾:
for file in *.jpeg; do
mv -- "$file" "$(basename $file .jpeg).jpg"
done
如果您使用 bash 作为 shell,而不是调用basename
,您可以使用剥离尾随扩展外壳参数扩展
.
结论#
The basename
命令从名称中删除任何前导目录和尾随后缀。
如果您有任何问题或反馈,请随时发表评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)