Вы можете использовать подстановку файлов (то есть расширение звездочки) с помощью find
, как, конечно, говорит трипл, но ... эта команда заставила меня вздрогнуть.
Когда вы используете команду find
, она имеет так много встроенных флагов, которые вы можете использовать, чтобы явно указать ей, что вы хотите, чтобы она делала, что нет веских причин использовать ls
с подстановкой файлов. И есть множество причин не . Например, подстановка файлов обычно игнорирует любые скрытые файлы или каталоги. Это означает, что любые файлы, имя которых начинается с точки, или которые находятся в каталогах (или подкаталогах каталогов), имя которых начинается с точки, , будут игнорироваться . Может быть, это то, что вы хотите, но с подстановкой файлов это нелегко и прямо под вашим контролем; с найти
это так.
Найти - правильный инструмент для работы. Вам нужен вариант -mindepth
. Используйте это так:
найти. -mindepth 2 -type f -iname '* .c'
Это находит все файлы (не каталоги, не специальные файлы), которые находятся в каталоге в текущем каталоге или на любом количестве уровней ниже, чье имя оканчивается на .c
или .C
. (Флаг -iname
означает игнорирование регистра.)
(Обратите внимание, что это не будет переходить по символическим ссылкам; обычно вы этого и хотите, но вы можете проверить man find
для узнайте, как отрегулировать это поведение.)
В качестве примечания я также использовал ls
, переданный по конвейеру grep
в течение некоторого времени, прежде чем изучать команду find
, но find
] действительно лучший метод. Я обнаружил, что практические команды, приведенные по этой ссылке, очень полезны для начала использования find
в повседневной работе: http://www.thegeekstuff.com/2009/03 / 15-Practical-linux-find-command-examples /