Копирование точного количества файлов через scp
Я копирую картинки с моего iphone через scp, где имена файлов выглядят так IMG_3134.JPG
, И скажем, я хотел бы скопировать файлы из IMG_3094.JPG
в IMG_3134.JPG
, Использование специальных символов, таких как *
или же ?
не получишь меня нигде и простой сценарий Bash, как это
#!/bin/bash
a=$1;
b=$2;
let b=b+1
while [ $a -lt $b ]; do
scp IMG_$a.* [email protected]:/home/user/
let a=a+1
done
Требуется вводить пароль каждый раз, когда файл копируется. Как это сделать?
2 ответа
Ты можешь использовать bash
расширение скобки:
IMG_30{94..99}.JPG IMG_31{00..34}.JPG
генерировать имена файлов из IMG_3094.JPG
в IMG_3134.JPG
,
На самом деле он имеет два расширения:
IMG_30{94..99}.JPG
будет расширен отIMG_3094.JPG
вIMG_3099.JPG
IMG_31{00..34}.JPG
будет расширен отIMG_3100.JPG
вIMG_3134.JPG
Так что ваши scp
может быть сделано с этим одним вкладышем:
scp IMG_30{94..99}.JPG IMG_31{00..34}.JPG [email protected]:/home/user/
Другое решение с использованием for
цикл для сбора имен файлов в $files
переменная и последовательность чисел между двумя аргументами, предоставленными в качестве входных параметров для вашего сценария, вы можете попробовать следующее:
#!/bin/bash
files=""
a=$1
b=$2
for i in `seq $a $b`;
do
files="$files IMG_${i}.JPG"
done
scp $files [email protected]:/home/user/