1. 获取文件名:basename shell本身提供了获取文件名的命令:basename,该命令可以从路径中提取出文件名(带后缀)。 举个栗子:
执行的结果为:
上面的栗子输出结果是文件后缀的,若不想带后缀,则:
结果为:
2. 获取路径:dirname dirname:从路径中提取出目录名
结果为:
上面两个命令是shell提供的,难免有些限制,我们可以使用${}来灵活获取,而且${}可以用来做shell的字符子串提取。 3. ${var##*/} 直接看个栗子:
上面这个栗子是:左起,找到最后一个'/'字符,返回其后面的内容(不含'/') 上面栗子的结果为:
4. ${##*.} 跟上面栗子一样:左起,找到最后一个'.'字符,返回其后面的内容(不含'.')
结果为:
5. ${var#*.} 左起,找到第一个'.'字符,返回其后面的内容(不含'.')
结果为:
6. ${var%/*} 右起,找到第一个'/'字符,返回开始到该字符的内容(不含'/')
结果为:
7.${var%%.*} 右起,找到最后一个'.'字符,返回开始到该字符的内容(不含'.')
结果为:
对${}的总结: #代表左起,%代表右起 两个符号代表最后一个字符,一个符号代表第一个字符
|
|