Список всех файлов, заканчивающихся несколькими расширениями файлов?

Если я хочу, чтобы файлы, заканчивающиеся на .fas я знаю, что я могу сделать следующее с помощью команды ls :

 ls -l /users/jenna/bio/*.fas 

и в нем перечислены все файлы, заканчивающиеся на .fas . Но как я могу получить файлы, заканчивающиеся на .fas или .pep ?

ls -l /users/jenna/bio/(*.fas | *.pep) , похоже, не работает? Я знаю, что могут быть другие команды, которые могут это сделать, но есть ли способ заставить его работать с ls ?

Спасибо за любую помощь!

3 Solutions collect form web for “Список всех файлов, заканчивающихся несколькими расширениями файлов?”

Используйте это: ls -l /users/jenna/bio/*.{fas,pep}

Или это: find /users/jenna/bio -iname '*.pep' -or -iname '*.fas'

Вещь, которая, скорее всего, будет работать из коробки, – это расширение брекета . Он работает в bash, zsh и ksh.

 ls -l /users/jenna/bio/*.{fas,pep} 

(Нет пробелов вокруг скобок.)

В bash и ksh это отображает ошибку, если одно из расширений не сопоставляется, но в любом случае перечисляет файлы, соответствующие другому расширению. Причина этого заключается в том, что расширение фигурной скобки не является функцией сопоставления подстановочных знаков, но текстовая замена: *.{fas,pep} преобразуется в *.fas *.pep прежде чем оболочка начнет поиск файлов, соответствующих шаблонам. В zsh вы получите сообщение об ошибке, и команда не будет запущена, но есть лучший способ: шаблон «или». Эта ошибка не будет выходить за пределы, если ни одно из расширений не будет соответствовать.

 ls -l /users/jenna/bio/*.(fas|pep) 

Или шаблоны также доступны с другим синтаксисом : @(…|…) ; в bash, этот синтаксис должен быть активирован с помощью shopt -s extglob , а в zsh этот синтаксис необходимо активировать с помощью setopt ksh_glob .

 ls -l /users/jenna/bio/*.@(fas|pep) 

(Некоторые из этих действий могут быть сконфигурированы. Все мои утверждения относятся к конфигурации по умолчанию оболочки, если явно не указано.)

Если вы хотите сканировать рекурсивно без раздражающих ошибок, вы обычно получаете от find или ls (например: « Permission denied », « Not a directory »), который может тормозить скрипты или команды xargs , также команда tree нигде не упоминалась:

 tree -fai / | grep -e ".fas$" -e ".pep$" 

выше я использовал root / , но может быть любым путем:

 tree -fai /users/jenna/bio/ | grep -e ".fas$" -e ".pep$"" 

КСТАТИ

  • `ls` не работает для каталога, скопированного из Win и OSX
  • Почему ls и hexdump не согласны с моим размером файла?
  • Что означает знак @ в выводе ls на терминале Mac OSX Lion?
  • В чем смысл ls -f (или, почему это висит?)
  • ls & dircolors - различать символическую ссылку на каталог и символическую ссылку на обычный файл
  • Почему мой «ls -al / home» не работает?
  • make ls gray out файлы, которые заканчиваются тильдой (`~`), используя `LS_COLOR`
  • Что означает символ «@» (at) на OSX ls?
  • Как отображать «доступные для человека» размеры файлов в результатах поиска?
  • Почему ls -l показывает время и год для каждого файла?
  • Как разрешить `ls` сначала отображать порядок результатов в строке?
  • Каковы все возможные письма для разрешений файлов Unix?
  • Interesting Posts

    векторные изображения в linux

    Файл Swf больше не будет воспроизводиться в Iceweasel / chromium

    Как настроить initrd через linuxrc

    Как я могу заставить pulseaudio всегда загружать звуковую карту USB в качестве одной и той же раковины каждый раз при загрузке?

    Будет ли переписывание исполняемого файла повлиять на процесс, на котором выполняется исходный исполняемый файл?

    Как перечислять только имена файлов, удаляющих каталоги и подкаталоги

    systemd срезы даже с низким CPUShare сильно влияют на реакцию системы

    Команда ls – определяет количество столбцов

    youtube-dl и –no-mtime, что это значит?

    Как сохранить .local TLD в моей интрасети

    почему местная авария убила мои удаленные задания?

    «Ошибка: неявное объявление функции« vfs_readlink »при установке VMware Tools

    Как узнать последовательность эвакуации, которую посылают мои клавиатуры на терминал?

    Добавление backtick (`) в вывод heredoc в команде оболочки

    rm: не удается удалить `/../…v ': разрешение отклонено

    Linux и Unix - лучшая ОС в мире.