macos - 如何在shell脚本中处理文件名中的冒号 ":"

标签 macos bash shell

我有一大组文件名中带有“:”的文件。当我在交互式 shell 中时,输入“\”然后按 Tab 键可以将它们识别为命令的有效输入,但在 shell 脚本中则不然。

我已经尝试过

less file:name.txt
less file\:name.txt
less 'file\:name.txt
less 'file:name.txt'

并且它未被识别为有效文件。

但是,在交互式命令行上,我输入 less,然后输入第一个文件,然后输入\,然后按 TAB 键,然后一切正常...

如何在 shell 脚本中执行此操作?

最佳答案

使用双引号:

less "file:name.txt"

Bash 将双引号内的值识别为完整字符串。

Using quotes to include spaces and characters in filenames中所示:

If you want to work with files with spaces or special characters in the filename, you may have to use quotes.

关于macos - 如何在shell脚本中处理文件名中的冒号 ":",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297728/

相关文章:

objective-c - 使用QTkit录制音频

linux - 行尾(新行)在 bash 中转义

linux - Bash:遍历文件并读取子字符串作为参数,执行多个实例

shell - 用于 FFmpeg 视频转换的 php shell 脚本

shell - 为什么从源代码构建的 dash 0.5.8 会导致 "dash -c ' :'"失败?

macos - 如何验证系统中安装的客户端证书

python - 如何使 python 脚本在 osx 上可执行?

regex - 使用正则表达式和 bash 在 xidel 中为 xpath 表达式创建别名

bash - 如何在 shell 脚本中使用个人访问 token 访问 GitHub API?

shell - 是否有适用于 Windows 的 KornShell (ksh) IDE?