linux输出文件名及全路径
有时候需要输出一个文件夹下的文件名及所以绝对路径,在网上找到是这个命令
1 | ls | sed "s:^:`pwd`/:" |
看命令不难理解,先是ls列出所有文件名,再使用管道符进行后续操作。在管道符之后,是使用sed进行一个替换,^是指字符串开头的意思,`pwd`是指执行pwd的结果,即当前目录的绝对路径。所以是在ls结果字符串的开头加上了当前的绝对路径。因为pwd的输出结果不带/,所以在后边又加上了/。
疑问与思考:
正常情况下使用sed进行替换时,都是使用sed "s///"的格式,里边分别放进去被替换的内容及想要替换的内容,但是这里使用的是:,并且发现使用/还会出错:
这里好像是因为``这个符号的原因,不是后边双斜线的原因,因为后边双斜线可以加转义符进行转义,但是即使加上也还是不行。
有看到的同学可以在评论解释一下,谢谢!
本文作者:无忧书房
本文链接:https://www.cnblogs.com/KanRiChu/p/13937067.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步