Команда Shell для получения всех файлов от сложной структуры каталогов

Chroot является очень ограниченным механизмом с плохой изоляцией между chrooted средой и хостом. На самом деле кроме заключения файловой системы из-за измененного корневого каталога нет никакой другой изоляции вообще. В особенности все драйверы, скомпилированные и загруженные в ядро, совместно используются хостом и chrooted средой. Обратите внимание однако, что chrooted среда может быть неспособной к устройствам доступа когда /dev, /sys или /proc в chrooted среде отличаются от хоста и не включают все необходимые файлы и/или узлы устройства.

5
16.03.2013, 16:48
5 ответов

Это тривиально:

find /directory -type f
17
27.01.2020, 20:31

Как предложено @michael-hampton find путь состоит в том, чтобы пойти. Однако немного больше объяснения необходимо. Опция -type может иметь несколько значений, проверить страницу справочника (man find). Вот быстрое определение:

Если Вы ищете регулярные файлы только:

find <path> -type f

Если Вы ищете что-нибудь не каталог:

find <path> ! -type d

Если Вы ищете регулярные файлы и символьные ссылки:

find <path> -type f -o -type l

(предыдущая команда ищет регулярный ИЛИ ссылка),

8
27.01.2020, 20:31

find работы точно также. Но если Вы используете zshell (zsh):

Только для файлов:

ls -al path/**/*(.)

Только для директоров:

ls -al path/**/*(/)

Посмотрите man zshexpn для большего количества eamples. Конкретно "раздел" спецификатора шарика.

3
27.01.2020, 20:31

Можно также сделать это в bash4 + (знать, что это следует за символьными ссылками):

shopt -s globstar nullglob
for file in **/*; do
    [[ -f $file ]] && printf '%s\n' "$file"
done
1
27.01.2020, 20:31
  • 1
    Глупый код, окрашивающий, заставляет меня хотеть поместить комментарий # */ только зафиксировать его. –  kojiro 16.03.2013, 00:37
  • 2
    @kojiro - Извините, забыл вынуждать маркер синтаксиса колотить режим. –  Chris Down 17.03.2013, 01:53
  • 3
    Теперь я чрезвычайно рад, что добавил тот немой комментарий, потому что я не знал, что Вы могли вынудить маркер колотить режим. –  kojiro 17.03.2013, 02:34
  • 4
    @kojiro, в случае, если Вы не найденный им все же, видит Подсветку синтаксиса для кода в справке Скидки с цены. –  manatwork 19.03.2013, 09:27

Проще всего

ls -R directory_name
0
10.04.2020, 14:25

Теги

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