我正在寻找一种方法来递归扫描目录并打印出以“.qfx”结尾的任何文件的所有实例。因此,对于给定的目录:
somedir/
fizz.qfx
buzz.qfx
blah/
foo.qfx
widget.js
meh/
bar.qfx
derp.gif
输出结果为:
somedir/fizz.qfx
somedir/buzz.qfx
somedir/blah/foo.qfx
somedir/blah/meh/bar.qfx
我在 Ubuntu 上,所以在 shell、python、perl 等方面没有任何偏好。迄今为止最好的尝试是:
find -name ".qfx" somedir
但出现以下错误:
find: paths must precede expression: .
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec][path...] [expression]
有什么想法吗?提前致谢!
答案1
它告诉你把目录放在-name
表达式前面。此外,你需要一个*
来匹配所有文件:
find somedir -name "*.qfx"
答案2
find /u02/fullbackup -name *.bck -print
find: paths must precede expression: arc_381465332_OSOS_20160219_2879_1.bck
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
解决方案:
find /u02/fullbackup -name '*.bck' -print
/u02/fullbackup/dbf_381465332_OSOS_20160219_2872_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2882_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2892_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2894_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2891_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2885_1.bck
/u02/fullbackup/dbf_381465332_OSOS_20160219_2871_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2888_1.bck
答案3
如果你使用zsh
shell 的话,你也可以使用ls **/*.qfx
,这非常有用。