我如何知道文件名的重量有多少字节?只是文件,而不是完整路径。我试过这个:
echo 'filename.extension' | wc -c
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
看起来不错;然而,echo 默认情况下会添加一个尾随换行符,所以echo -n
orprintf
是你的朋友。如果你想将 /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}
直接给出变量的长度。