Intereting Posts
Хорошо ли устанавливать Linux на внешний жесткий диск? Не удается связаться через интернет через интерфейс Ethernet Может ли LVM отмечать / избегать плохих блоков? сетевой менеджер не может подключиться к WPA2 Enterprise EAP Существует ли какой-либо пользователь, который будет существовать в системе почему гном 3 отстает во всех дистрибутивах? Как я могу получить статистику о процессорах, похожих на процессор, из командной оболочки? PulseAudio не может изменить приемник для одной конкретной программы Почему есть два файла ifcfg-eth0, но в другом каталоге как определить, что DISPLAY активен / имеет фокус ввода? mkdir с функцией даты ведет себя по-разному в скрипте ls для уменьшения порядка в сочетании с другой командой Manjaro: SSD не распознается в BIOS после установки Параллельно вызвана эта «ошибка mustOpen: не удается открыть – читать: нет такого файла или каталога» Как мне grep и сортировать с помощью этого конкретного шаблона?

рекурсивный поиск имени папки и присвоение его переменной

Я в пути к папке. Есть папка с именем dir . Внутри dir есть еще одна папка, но я не знаю названия. Как найти его и присвоить переменной.

PS: я хочу запустить это на нескольких папках, поэтому нужен скрипт, который работает как выше.

 set -- dir/*/ 

Выполнение вышеизложенного установит $1 в качестве пути к первому каталогу, найденному в dir . $2 будет путевым именем второго и т. Д. И $@ будет списком всех каталогов в dir .

Обратите внимание, что трейлинг / в конце dir/*/ является значительным. без него вы могли бы подобрать и имена обычных файлов.

Пример, приведенный ниже:

 . `-- dir |-- A | `-- file2 |-- B | `-- file2 |-- C | `-- file2 `-- file1 
 $ set -- dir/*/ $ echo "$1" dir/A/ $ printf '%s\n' "$@" dir/A/ dir/B/ dir/C/ $ myfolder="$1" $ printf 'My folder is "%s"\n' "$myfolder" My folder is "dir/A/"