Вы можете find
find -type f -name "Account*"
Альтернатива 2 (это может включать и папку)
ls -1 Account*
Альтернатива 3 (grep, это может включать и папку)
ls -1 | grep -E "^Account"
У меня есть много файлов в папке, например
Kiran.txt Kiran1.txt Kiran221.txt Kiran144.txt Time.csv Timer.csv Timer2.csv Timer444.csv Timer266.csv Account.sh Account3.sh Account3333.sh Account3333.sh Account333333.sh
Из этого каталога я хочу узнать, как я могу использовать grep
для отображения файлов на основе части их имени файла - например, те, которые начинаются с «Учетная запись» или те, которые заканчиваются на «.sh».
Вы можете find
find -type f -name "Account*"
Альтернатива 2 (это может включать и папку)
ls -1 Account*
Альтернатива 3 (grep, это может включать и папку)
ls -1 | grep -E "^Account"
Используйте подстановочный знак ( что это за подстановочный знак? ):
ls *.sh
*
Будет соответствовать что - нибудь перед окончанием, .sh
что вы хотите. Используйте другие ls
параметры для отображения, например, -l
чтобы сделать длинный список. Смотрите man ls
для получения дополнительной информации о том, что вы можете сделать с ним.
Обратите внимание, ls
что здесь также будет указан любой каталог, заканчивающийся .sh
не только файлами.
Вы также можете использовать, find
чтобы преодолеть эту проблему.
find . -type f -maxdepth 1 -name "*.sh"
Эта команда перечисляет только «настоящие» файлы. Использование find - это то, что я бы порекомендовал, если вы захотите потом что-то сделать с найденными файлами. Вы можете сделать это с помощью -exec
опции .
Стандартным решением является труба:
ls | grep ^Account
С чем-то таким простым, как «Файлы, начинающиеся с учетной записи», глобусы также будут работать:
ls Account*
но в целом grep более мощный, и он не рискует переполнить максимальную длину командной строки, если ваша папка действительно, действительно заполнена.
Используйте следующую команду
ls *.sh