Найти имя папки рекурсивно и присвоение его переменной

rsync может сделать это с помощью опции --existing:

rsync -v --existing dir2/* dir1/

0
27.06.2018, 13:55
1 ответ
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/"
0
28.01.2020, 04:19

Теги

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