Как найти файлы, заканчивающиеся на ~ и pyc?

Я хочу найти все файлы (в текущем и все подкаталоге), которые заканчиваются на «~» или «pyc». Для этого я попробовал следующий шаблон find :

 find . -name '*{~,pyc}' find . -name '{*~,*.pyc}' 

но не перечислять ни один из файлов, присутствующих в диалекте. Почему эти шаблоны не работают? Как это сделать правильно?

При использовании ls вместо find (без кавычки) я получаю ожидаемый результат (за исключением того, что ls показывает только текущий каталог, а не все подкаталоги).

3 Solutions collect form web for “Как найти файлы, заканчивающиеся на ~ и pyc?”

Было бы намного проще с регулярным выражением, если у вас есть поиск GNU,

find . -regextype posix-egrep -regex '.*(~|pyc)$'

PS Я предполагаю, что вы используете расширение оболочки с помощью find? Если это так, это невозможно, используйте find . -name '*.pyc' -o -name '*~' find . -name '*.pyc' -o -name '*~' .

 find . -type f \( -name "*~" -o -name "*pyc" \) 

Это вернет все файлы ( -type f ), которые заканчиваются на ~ или ( -o ) pyc .

Если вам нужна компактность, с zsh :

 printf '%s\n' **/*(~|pyc)(.D) 

( D для точечных файлов, а также для обычных файлов)

Если вы хотите использовать расширение оболочки, вам придется делать такие вещи, как:

 eval 'find . -type f ! \(' '! -name \*'{~,pyc} '\)' 

Которая расширяет оболочку:

 eval 'find . -type f ! \(' '! -name \*~' '! -name \*pyc' '\)' 

Затем он просит оболочку оценить эту командную строку:

 find . -type f ! \( ! -name \*~ ! -name \*pyc \) 
  • «Globbing» (*) происходит от «глобальной команды» ... А?
  • Должен ли я вставлять команду в условное выражение или проверять его код возврата?
  • Как выбрать диапазон файлов с помощью частичного имени
  • Команда scp ведет себя по-разному при использовании с функцией expect
  • Как запустить команду для нескольких файлов
  • Совместимость шаблонов и арифметические операторы (+ - * /%)
  • для цикла в списках bash для точек и двухточечных папок
  • Найти файлы, которые заканчиваются номером
  • Тар список файлов, которые не все существуют
  • cp скрытые файлы с шаблонами glob
  • regex - поиск только пар символов
  • Linux и Unix - лучшая ОС в мире.