В оболочке bash вы можете запросить расширение каждого каталога с помощью опции globstar
:
shopt -s globstar
а затем скопировать каталоги с циклом:
for dir in **/
do
mkdir -p /path/to/dest/"$dir"
done
... или если вы думаете, что все они поместятся в один вызовmkdir
:
set -- **/
mkdir -- "${@/#//path/to/dest/}"
Это синтаксис массива bash, который гласит :«взять каждый элемент массива $@
и заменить начало каждого из них на /path/to/dest/
.
Я не знаю, как заставить ls
выводиться напрямую в виде раскрывающегося списка фигурных скобок. Если вы попытаетесь преобразовать вывод расширения **/
в раскрытие фигурной скобки, вам нужно быть осторожным, чтобы:
{
или ${
Я бы не рекомендовал.
Думаю, тебе либо нужно:
Смонтируйте «диск» с другого Linux-компьютера и измените там пароль. Вы должны быть в состоянии выполнить это с помощью копии busybox с хост-платформы, скопировать на диск, а затем chroot
перейти на диск, используя busybox как для оболочки, так и для команды passwd.
Подключите клавиатуру и монитор и войдите в систему в обычном режиме. Хотя обновление пароля может быть нарушено в ssh, оно должно работать при входе в консоль.
Смонтируйте «диск» с другого Linux-компьютера и в противном случае отредактируйте /etc/shadow
.