如何在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
广告