Перечислите все файлы в каталоге рекурсивно, но исключите сами каталоги

попробовать umount.

umount /mnt/systemfolder
8
19.02.2016, 21:28
3 ответа
find . -type f

сделает это. Можно сделать должностное лицо, если Вы хотите воздействовать на имена файлов.

9
27.01.2020, 20:10
  • 1
    да, но я должен исключить все файлы в соответствии с определенными каталогами. –  TheDelChop 23.05.2013, 22:40
  • 2
    -type f для регулярных файлов. каталоги и регулярные файлы являются 2 из многих различных типов файлов на Unix. С -type f, Вы исключаете каталоги, но также и все другие типы файлов как символьные ссылки, сокеты, fifos, устройства, двери... –  Stéphane Chazelas 23.05.2013, 23:07
  • 3
    @StéphaneChazelas, двери? –  user1717828 19.02.2016, 21:43
  • 4
    @user1717828, en.wikipedia.org/wiki/Doors_%28computing%29 –  Stéphane Chazelas 19.02.2016, 22:12

Просто используйте ! -type d:

find . -type d \( -path ./.git -o \
                  -path ./log -o \
                  -path ./public -o \
                  -path ./tmp \) -prune -o \
       ! -type d -print
6
27.01.2020, 20:10

Вот один способ сделать это. Я передаю Ваш вывод по каналу от find (использование xargs) к определенному удару, который задает вопрос "Разве, это не каталог?" и если это не, это повторяет его к Вашему терминалу.

Вот целая хижина:

find . -type d \( -path ./.git -o -path ./log -o -path ./public -o -path ./tmp \) -prune -o -print | xargs -i bash -c 'if [ ! -d "{}" ]; then echo "{}"; fi'

Вот просто мое дополнение:

xargs -i bash -c 'if [ ! -d "{}" ]; then echo "{}"; fi'

Объяснить:

xargs -i строка замены "{}" с аргументами (те, которые передаются по каналу в),

bash -c команды считаны из строки

if [ ! -d "{}"]; это каталог.

echo "{}" повторите результат находки.

fi; конец, если.

0
27.01.2020, 20:10
  • 1
    Там, Вы превращаете имя файла в код оболочки. Типичный путь расширения полномочий. Поскольку можно создать названный файл $(do-what-I-want) например, чтобы сделать, чтобы Вы сделали то, что он хочет. –  Stéphane Chazelas 23.05.2013, 23:12

Теги

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