Переименование нескольких файлов с помощью цикла

За исключением того факта, что обновление Windows изменило порядок загрузки, в вашей двойной -загрузке нет ничего плохого.

Пожалуйста, прекратите делать то, что не может работать (, но может усугубить ситуацию ), прямо СЕЙЧАС.

Просто откройте настройки UEFI > меню загрузки и измените порядок обратно на «Debian» (Вы обнаружите, что вместо «Debian» теперь есть «диспетчер загрузки Windows» ), и он должен загружаться с Grub, как и раньше.. Загрузите Debian и на всякий случай выполните sudo update-grub.

Причина, по которой вы можете сделать это (и не нужны никакие команды или даже загрузка живого сеанса ), связана со спецификациями UEFI, которые позволяют независимо загружать любые и все установленные ОС, в отличие от того, что произошло. раньше со старым BIOS/MBR, где только один загрузчик -, как правило, Grub в многопользовательской загрузке Windows/Linux -, заменяющий загрузчик Windows -, мог быть установлен в MBR (Master Boot Record ). Пока в системном разделе ESP (EFI )все еще есть файлы EFI для данной ОС, он должен загружаться. Ваши еще там:

/EFI/Boot/bootx64.efi /EFI/debian/grubx64.efi
0
16.04.2020, 20:14
3 ответа

Вы можете попробовать это:

for f in *.fa; do 
  echo mv "$f" "${f%-*}.${f#*.}"
done

Результат:

E9.bin.10.fa
E9.bin.16.fa
E9.bin.21.fa
E9.bin.7.fa
2
19.03.2021, 02:28

Если у вас есть perlrename(по умолчанию в Ubuntu, Debian и многих других системах ), вы можете просто

rename -n 's/-GOWN33_multiplemap//' *fa

Если это дает вам правильные имена файлов, запустите без -n, чтобы фактически переименовать их:

rename 's/-GOWN33_multiplemap//' *fa
2
19.03.2021, 02:28

Предполагая, что все эти файлы находятся в текущем каталоге и что все они, а не другие файлы, соответствуют шаблону подстановки

E9-GOWN33_multiplemap.bin.*.fa

Затем вы можете перебрать их с помощью

for name in E9-GOWN33_multiplemap.bin.*.fa; do
   # more code here
done

Внутри цикла $nameбудет именем одного из этих файлов.

Учитывая имя E9-GOWN33_multiplemap.bin.10.faв $name, мы можем удалить бит E9-GOWN33_multiplemapиз начала имени с помощью

${name#E9-GOWN33_multiplemap}

Затем нужно просто повторно -присоединить начальную E9строку к ее началу, чтобы создатьE9.bin.10.fa:

newname=E9${name#E9-GOWN33_multiplemap}

С помощью mvмы можем затем переименовать старое имя файла в новое:

mv "$name" "$newname"

Таким образом, имеем

for name in E9-GOWN33_multiplemap.bin.*.fa; do
    newname=E9${name#E9-GOWN33_multiplemap}
    mv "$name" "$newname"
done

или короче,

for name in E9-GOWN33_multiplemap.bin.*.fa; do
    mv "$name" "E9${name#E9-GOWN33_multiplemap}"
done
0
19.03.2021, 02:28

Теги

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