shell提取文件名字或目录名

shell提取文件名字或目录名,第1张

basename是专门用于从路径中提取出文件

从某个路径中提取出文件名(带文件尾缀)

返回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 。

可以得出结论:

另外,

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11570029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存