小编mic*_*lbr的帖子

如何使用find命令列出文件名而不列出路径?

我已经在线检查了一些答案,但是当命令中有参数时它们不起作用-name(也许我做错了什么,不确定)。我想做的是仅列出文件名(而不是目录/路径),更复杂的是,我有相同的文件名但具有不同的扩展名,所以我需要使用-name和 来过滤结果-o,问题是我的建议看到使用 或-printfbasename并且当存在时这些效果不佳-name *.txt -o name *.pdf。还有其他方法可以解决这个问题吗?

\n

我的文件示例:

\n
/dir1/dir2/dir3/dir4/\n                    /file1.txt\n                    /file1.pdf\n                    /file1.ods ...etc.\n
Run Code Online (Sandbox Code Playgroud)\n

我只对每个列表列出一种或多种类型的文件感兴趣(通过使用-name来过滤我的结果。

\n

是否可以仅使用 1 个find命令来完成它,或者我必须分两步完成(将结果保存在临时文件中,然后从临时文件中过滤/删除目录)?我试图完成的结果是一个文本文件,每行都有文件名:

\n
file1.txt\nfile1.pdf\nfile1.ods\nfile2.txt\nfile2.pdf\netc.\n
Run Code Online (Sandbox Code Playgroud)\n

我使用的命令是

\n
find /dir1/dir2/dir3/dir4/ -type f -name '*.txt' -o -name '*.pdf' -o -name '*.ods' -printf "%f\\n"\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用 GNU 查找。

\n

更新

\n

事实证明我必须把\\(...\\),正如 \xce\xb1\xd2\x93s\xd0\xbd\xce\xb9\xce\xb7 提醒的那样

\n

find

3
推荐指数
1
解决办法
2833
查看次数

标签 统计

find ×1