1

Как показать, что все файлы в каталоге с именем содержат номер? Я старался

ls [0-9] textfiles

(textfiles) это мой каталог.

Вот как мне показывает мой карманный путеводитель по Linux. Я просто пытаюсь отобразить все файлы, которые содержат номер в имени. Я на самом деле попробовал более 20 вариантов, которые я нашел в своей книге и в Интернете.

2 ответа2

6

Вы, вероятно, хотите что-то вроде

ls textfiles/*[0-9]*

или (если « textfiles - это мой каталог» означает, что вы находитесь внутри каталога):

ls *[0-9]*

Обратите внимание, что эти команды не ограничиваются обычными файлами. Каталоги, символические ссылки, именованные каналы и другие записи могут совпадать. В широком контексте Unix все это "файлы", и такое сопоставление выполняется только в отношении их имен. Чтобы отличить обычные файлы, вам нужен другой инструмент, например, find .

Я удивлен, что любое руководство посоветовало вам ls [0-9] textfiles как это не имеет большого смысла в контексте вашего вопроса.

Чтобы декодировать *[0-9]* обратитесь к man 7 glob или, например, к этой статье, разделу Стандартные подстановочные знаки (шаблоны подстановки) . Стоит заметить, что в приведенных выше случаях это оболочка (не ls !) это расширяет данный шаблон.

1

find также работает и может отображать только файлы, например, в текущем каталоге (.):

find . -type f -name "*[0-9]*"

По умолчанию он рекурсивный, но используйте -maxdepth 1 чтобы избежать этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .