список только прямых дочерних каталогов всех каталогов с определенным именем

Вы можете попробовать что-то вроде:

./a.out | gzip -c - > log.gz

и вы можете распаковать его с помощью 7 -zip Но чтобы избежать битого архива, вы должны реализовать таймер в своей программе. Если вы прервете его с помощью Ctrl -C, архив не будет правильно закрыт.

0
06.02.2021, 01:50
3 ответа
  • Bash, Globstar активирован (с помощьюshopt -s globstar).

    printf '%s\n' **/zing/*/
    
    • Только для последнего компонента пути

       for dir in **/zing/*/; do basename "$dir"; done
      
  • POSIX Находка.

    find. -type d -path '*/zing/*' -prune
    

    -pruneизбегает спуска по совпадающим каталогам.

    • Только для последнего компонента пути

      find. -type d -path '*/zing/*' -prune -exec basename {} \;
      
5
18.03.2021, 22:32

Вы можете найти все zing каталоги

find. -type d -name zing

и выполните «ls» в каждом, если вам нужно получить содержимое каталога.

Или, возможно, повторить поиск (find \{\} -type d -maxdepth 1 -mindepth 1), чтобы получить только имена непосредственных дочерних каталогов. Затем вы можете использовать basename, чтобы получить только имя каталога, или какой-нибудь уродливый хак, например | rev | cut -f1 -d/ | rev.

0
18.03.2021, 22:32

Попробуйте это:

find. -type d -regex ".*/zing/[^/]+"
3
18.03.2021, 22:32

Теги

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