从某个路径中提取出文件名(带文件尾缀)
返回file1.txt
若从某个路径中提取出文件名(不带文件尾缀),则需要在变量的后面加上后缀名
返回file2
dirname用于从路径中提取出目录名,使用方法为 dirname 文件目录
返回/your/path
返回/your
初接触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 。
可以得出结论:
另外,
以上三个都是不成功的,需要全部包起来!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)