Например, как я могу реплицировать:
ls *.txt
, когда в моих текстовых файлах отсутствует окончание .txt
, а в отношении расширений отображаются так же, как и у многих других типов файлов? ]
В качестве альтернативы, можно ли перечислить только те файлы, которые НЕ имеют расширения файла?
Чтобы сопоставить файлы, которые вообще не имеют расширения, вы можете использовать команду
ls | grep -v '\.'
Чтобы сопоставить файлы, которые не имеют расширения .txt
, вы можете использовать команду
ls | grep -v '\.txt'
Это передаст список файлов в текущем каталоге на grep
, который удалит все имена файлов, в которых есть .
(или .txt
для второй команды).
С помощью ls -ignore="PATTERN"
вы можете исключить файлы из результата ls.
Например, ls --ignore="*.txt"
игнорировать текстовые файлы.
Просто отмените ваш шаблон (примечание: shopt -s extglob
требуется).
Чтобы отобразить все файлы без расширения:
ls !(*.*)
Чтобы отобразить файлы, не относящиеся к txt
, попробуйте:
ls !(*.txt)
Я предпочитаю избегать использования grep для простых операций листинга.
Во избежание использования grep
,
я рекомендую использовать ls !(*.*)
для поиска файлов без расширения файла, а также
ls -I "*.gz" -I "*.tz"
или ls --ignore={"*.jpg","*.png","*.bmp"}
Команда ls -SX1|less
отсортирует по расширению в одном столбце, а файлы без такового будут перемещены в начало. Пропускная способность меньше, как в примере, предлагается для каталогов с более чем несколькими файлами, чтобы ограничить вывод всего экрана за один раз.