首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何只获取带有Linux 'find‘的文件名?

如何只获取带有Linux 'find‘的文件名?
EN

Stack Overflow用户
提问于 2011-03-28 15:58:57
回答 9查看 328.8K关注 0票数 312

我使用find来查找目录中的所有文件,所以我得到了一个路径列表。但是,我只需要文件名。例如,我得到./dir1/dir2/file.txt,我想得到file.txt

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-28 16:00:49

在GNU find中,您可以使用-printf参数来实现此目的,例如:

代码语言:javascript
复制
find /dir1 -type f -printf "%f\n"
票数 432
EN

Stack Overflow用户

发布于 2011-03-28 20:09:35

如果你的find没有-printf选项,你也可以使用basename:

代码语言:javascript
复制
find ./dir1 -type f -exec basename {} \;
票数 184
EN

Stack Overflow用户

发布于 2011-03-28 16:01:19

如果您正在使用GNU,请查找

代码语言:javascript
复制
find . -type f -printf "%f\n"

或者您可以使用诸如Ruby(1.9+)之类的编程语言。

代码语言:javascript
复制
$ ruby -e 'Dir["**/*"].each{|x| puts File.basename(x)}'

如果您想要一个bash (至少4个)解决方案

代码语言:javascript
复制
shopt -s globstar
for file in **; do echo ${file##*/}; done
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5456120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档