Несмотря на название вашего вопроса, я хочу представить вам решение с помощью find
. У него есть опция регулярного выражения (-regex
), поэтому [0-9]*
будет сопоставлять имена файлов, состоящие исключительно из цифр.
Чтобы найти только файлы (-type f
) рекурсивно ниже текущего каталога (.
) Используйте
find . -type f -regex ".*/[0-9]*"
.*/
В регулярном выражении является необходимым, потому что регулярное выражение " является совпадением на всем пути, а не поиском. " (man find
). Поэтому, если вы хотите найти только файлы в текущем каталоге, используйте \./
вместо этого:
find . -type f -regex "\./[0-9]*"
Тем не менее, это не очень оптимально, так как поиск выполняет рекурсивно и в этом случае, и только после этого отфильтровывает желаемые результаты.