如何在shell脚本中处理文件名中的冒号“:”

时间:2014-03-10 10:31:05

标签: macos bash shell

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

我试过

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

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

但是在交互式命令行中我键入较少,然后是第一个文件,然后我键入\,然后点击TAB键,一切正常...

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

2 个答案:

答案 0 :(得分:2)

使用双引号:

less "file:name.txt"

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

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

  

如果您想使用包含空格或特殊字符的文件   文件名,您可能必须使用引号。

答案 1 :(得分:0)

即使你没有放任何东西,它也能正常工作。

你可以试试: 更少的文件,它可以识别它......

但您可以在bash中使用less "file:name.txt"作为字符串。