Итак, вы хотите добавить последние три символа базового имени файла, за которыми следует подчеркивание, перед именем файла?
#!/bin/bash
EXT=.txt
for file in *${EXT}; do # presuming all the filenames have no spaces
base=${file%${EXT}}
prefix=${base:(-3)}
newname=${prefix}_${base}${EXT}
mv ${file} ${newname}
done
Это не будет работать в оболочке Korn, поскольку она использует следующие уловки bash
-specific:
ksh[3]: prefix=${base:(-3)}: bad substitution
Если у вас запущен агент ssh -и загружен старый ключ, с помощью которого вы уже можете войти в систему, он должен работать следующим образом:
ssh-copy-id -i new-key user@host
или
ssh-copy-id -i new-key host-alias-from-config
Мне пришлось добавить -f
, но я не уверен, что это было ошибкой с моей стороны.
Я только что проверил, и ssh -copy -id поддерживает параметр -i [identity _file] точно так же, как вы использовали бы его для ssh.
Если это не работает для вас, вы можете посмотреть, поддерживает ли ваша версия эту опцию:
-o ssh -o IdentityFile ~/backups/.ssh/id_dsa
Затем вы можете попробовать обновить свою версию ssh -скопировать -id. Наконец, вы можете просто скопировать/вставить открытый ключ после входа по ssh.