在Linux系统中,获取文件名是一个非常常见的操作,无论是在命令行中还是在编写脚本时,都有可能需要获取文件名。下面将介绍几种常见的获取文件名的方法。
在成都做网站、网站建设中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联公司专业成都网站建设10多年了,客户满意度97.8%,欢迎成都创新互联客户联系。
一、使用basename命令
basename命令可以用来获取路径中的文件名,语法如下:
$ basename [path]
其中,[path]为文件路径,可以是绝对路径或相对路径。如果不指定[path],则默认使用当前目录。
例如,如果要获取路径为”/home/user/test.txt”的文件名,可以使用以下命令:
$ basename /home/user/test.txt
输出结果为:
test.txt
如果要获取当前目录下名为”test.sh”的文件名,可以使用以下命令:
$ basename test.sh
输出结果为:
test.sh
二、使用${var##*/}语法
${var##*/}语法可以用来获取文件名,其中var是文件路径变量。
例如,假设有一个文件路径变量path为”/home/user/test.txt”,则可以使用以下语句获取文件名:
$ echo ${path##*/}
输出结果为:
test.txt
如果要获取当前目录下名为”test.sh”的文件名,可以使用以下语句:
$ echo ${PWD##*/}/test.sh
其中,${PWD##*/}表示当前目录的文件名。
输出结果为:
/Users/user/test.sh
三、使用cut命令
cut命令可以用来分割文本,因此也可以用来获取文件名。例如,如果要获取路径为”/home/user/test.txt”的文件名,可以使用以下命令:
$ echo “/home/user/test.txt” | cut -d ‘/’ -f 4
其中,-d指定分隔符为”/”,-f指定输出第4个字段(即文件名)。
输出结果为:
test.txt
如果要获取当前目录下名为”test.sh”的文件名,可以使用以下命令:
$ echo $PWD/test.sh | cut -d ‘/’ -f 5
其中,$PWD表示当前目录的路径,-d指定分隔符为”/”,-f指定输出第5个字段(即文件名)。
输出结果为:
test.sh
综上所述,通过使用basename命令、${var##*/}语法和cut命令,可以方便地获取文件名。在实际工作中,可以根据实际需求选择适合的方法,提高工作效率。
相关问题拓展阅读:
在当前目录下,查找所有内容包含‘abc’的文件
find . -type f | xargs grep -l ‘abc’
或
find . -type f -exec grep -l ‘abc’ {} \;
扩信铅展资料:
linux查找文件命令find
根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find /etc -name ‘*srm*’
这个命令表明了Linux系统将在/etc整个目录中滑察好查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面没辩的星号,命令如下:
find/etc -name ‘srm*’
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
简单的获取耐让文件名的话,可以输入命令:ls,如果需要把整个老圆磁盘所有文件名字打出的话,需要写个脚本,循环递昌含局归下。
可能要用的awk
获取所有常规文件的文件名并打印出来的脚本listfile.sh如下
#!/bin/bash
dir=”/*”
dir=$1$dir
for f in $dir
do
if
then
echo $f
fi
done
使用方法唤芹:
$ listfile.sh PATH
原理:
PATH参数是路径枣滑,将路径后加上“/*”,代表该目录下的和岩毕所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印
举例:
ls -l
total 36
-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.sh
drwxrwxr-x 2 lipeng lipeng 4096 Maybyteorder
drwxrwxr-x 8 lipeng lipeng 4096 Mayhello
-rwxrwxr-x 1 lipeng lipeng 122 Nov 29 20:16 listfile.sh
-rw-rw-r– 1 lipeng lipeng 177 Aug 1 03:10 main.cpp
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrix
drwxrwxr-x 5 lipeng lipeng 4096 Aprmodbus
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtest
drwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test
$ ./listfile.sh .
./aaa.sh
./listfile.sh
./main.cpp
ls -l
~~~~~~~~~~~~~~~~~~
关于linux获取文件名的方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
成都服务器托管选创新互联,先上架开通再付费。
创新互联(www.cdcxhl.com)专业-网站建设,软件开发老牌服务商!微信小程序开发,APP开发,网站制作,网站营销推广服务众多企业。电话:028-86922220
分享标题:Linux常见方法:获取文件名 (linux获取文件名的方法)
本文路径:http://www.shufengxianlan.com/qtweb/news43/15443.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联