Вывести список только обычных файлов [дубликаты]

Вы можете прочитать об индексе хэш-дерева, используемом для каталогов здесь.

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

3
06.11.2018, 10:11
3 ответа
find. -maxdepth 1 -type f -ls

Это даст вам обычные файлы в текущем каталоге в формате, похожем на то, что вы получили бы с ls -lisa(, но показывает только обычные файлы, благодаря -type -fв командной строке ).

Обратите внимание, что -ls(, представленные BSD ), и -maxdepth(, представленные GNU find), не являются -стандартными (, хотя теперь распространенными )расширениями. POSIXly, вы можете написать это:

find. ! -name. -prune -type f -exec ls -ldi {} +

(который также имеет преимущество сортировки списка файлов, хотя, возможно, в больших независимых кусках, если в текущем каталоге имеется большое количество файлов ).

9
27.01.2020, 21:07

Хорошо, когда вы используете -a показывает все, что скрыто; скрытые файлы и папки. Вместо ls вы, вероятно, захотите использовать команду find. Это должно помочь вам начать:

find -type f -exec ls -la {} \;

Сначала вам нужно перейти в каталог, в котором вы хотите выполнить поиск.

2
27.01.2020, 21:07

lsне имеет возможности сделать это, и вам не следует анализировать его вывод для фильтрации обычных файлов.

findможно использовать для поиска и перечисления обычных файлов вместо ls. Другой вариант — использовать Zsh и его квалификаторы glob :

.
ls -l -- *(D.)

перечисляет все обычные файлы, включая те, имя которых начинается с точки.

7
27.01.2020, 21:07

Теги

Похожие вопросы