如何在Linux上使用find命令只获取文件名?


Linux find命令是最常用的命令之一,它允许我们遍历文件层次结构。它主要用于查找特定文件或目录,我们还可以附加其他Linux命令或标志来增强或执行复杂操作。

让我们探索一个find命令的例子来更好地理解它。

在下面显示的linux代码中,我尝试在我的下载文件夹中搜索一个文件,为此我使用了find命令。

find sample.sh

输出

sample.sh

请注意,如果find命令能够找到该文件,它将只打印文件名,否则它不会返回任何内容,终端进程将终止。

现在我们知道了find命令的工作原理,让我们来探讨只获取文件名而不获取其他任何内容的情况。

如果您使用的是GNU终端,那么以下命令将帮助您实现这一点。

只需将命令写入您的GNU终端

find ./ -type f -printf "%f
"

输出

immukul@192 ~ % find ./ -type f -printf "%f
" Applications C: emp1 Desktop Documents Downloads Exercism IdeaProjects Library MEGAsync MEGAsync Downloads Movies Music Pictures Public PycharmProjects

需要注意的是,如果您不在GNU终端上,您可能会收到一个错误提示,指出找不到-printf。在这种情况下,您可以使用bash脚本帮助我们实现相同的输出。

考虑以下脚本代码:

for file in **; do echo ${file##*/}; done

只需将上述代码保存到以.sh结尾的文件中,然后使用以下命令赋予文件权限:

chmod 777 out.sh

最后,使用以下命令执行shell脚本:

./out.sh

输出

immukul@192 ~ % ./out.sh
Applications
C: emp1
Desktop
Documents
Downloads
Exercism
IdeaProjects
Library
MEGAsync
MEGAsync Downloads
Movies
Music
Pictures
Public
PycharmProjects

更新于:2021年7月30日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告