计算文件名的字节数

Sme*_*ink 0 size byte

我如何知道文件名的重量有多少字节?只是文件,而不是完整路径。我试过这个:

echo 'filename.extension' | wc -c
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

Mar*_*ler 5

看起来不错;然而,echo 默认情况下会添加一个尾随换行符,所以echo -norprintf是你的朋友。如果你想将 /path/to/files/like/this/filename.extension 转换为 filename.extension,你会有类似的东西

filepath='/path/to/files/like/this/filename.extension'
namelength=$(printf "%s" "$(basename "${filepath}")" | wc -c)
Run Code Online (Sandbox Code Playgroud)

如果您想要字符(或类似的)长度,而不是字节数:
在 POSIX 兼容的 shell 中,有一种更简单的方法(例如 bash 和 zsh,所以您可能正在使用其中一种!):

filename="${filepath##*/}"
namelength=${#filename}
Run Code Online (Sandbox Code Playgroud)

扩展${#varname}直接给出变量的长度。