Команда Linux, чтобы найти все экземпляры файла шаблона?
Я ищу способ рекурсивного сканирования каталога и распечатать все экземпляры любого файла, который заканчивается ".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]
Есть идеи? Заранее спасибо!
3 ответа
Решение
Он говорит вам поставить каталог перед -name
выражение. Кроме того, вам нужно *
чтобы соответствовать для всех файлов:
find somedir -name "*.qfx"
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
В случае, если вы используете zsh
в качестве оболочки вы также можете использовать ls **/*.qfx
, что довольно полезно.