【shell】文件名中有空格怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【shell】文件名中有空格怎么办相关的知识,希望对你有一定的参考价值。

参考技术A 初接触unix,开始写shell,遇到一个很恼人的问题。
先看看需求:
创建一个文件夹,在里面新建一个文件

多简单是吧

再看看格式
/root/my dir/sub dir/test file.txt
(当然,这里只是模仿的,重点是无论文件夹名称、文件名称都是有空格的)

其实这里第一个就执行不了:-bash: dir/sub: No such file or directory,shell不认空格的。

看起来很正常了,来创建看看

可以发现,并没有创建my dir和sub dir文件夹,反而多了my、dir这样的几个文件夹。可以发现,其实它相当于执行了

竟然双引号可以让空格失效,那我们来加上双引号

创建成功!

用同样的方法创建test file.txt

其实在使用上面的方法前,我已经尝试过各种语法,包括括号、单引号、双引号、反斜线,甚至交替使用(因为我之前没接触过shell语法,完全是用java语法来套的),碰壁碰出来的。

以上三个是一样的,输入都是:/root/my dir/sub dir。
但是如果改一下格式,后面要根据时间创建一个文件夹,很显示要使用函数了。来看看

最后一行输出的是:/root/my dir/sub dir/ date +%Y%m%d 。

可以得出结论:

另外,

以上三个都是不成功的,需要全部包起来!

VB调用SHELL,参数路径有空格如何处理?

比如:当前程序所在路径为:d:\1 23\4下,即app.path为在d:\1 23\4,在此目录下有一批处理dx.bat,如果通过SHELL调用此批处理?
无空格时格式为:xxx=shell(app.path & "dx.bat",vbHide)
因为app.path中有空格,要想用以上格式调用dx.bat,应该如何写?
请给出完整答案!谢谢!

操作系统:WIN7

参考技术A i=shell(chr(34) & app.path & "\dx.bat" & chr(34),vbHide)

以上是关于【shell】文件名中有空格怎么办的主要内容,如果未能解决你的问题,请参考以下文章

java执行shell命令中有空格的处理方法

VB调用SHELL,参数路径有空格如何处理?

VB调用SHELL,参数路径有空格如何处理?

Shell 脚本中空格的使用

bat命令中,文件夹名字有空格,提示参数无效怎么办

CMD 命令行中文件路径有空格怎么办