У меня есть последовательность файлов с замедленной съемкой на моем Raspberry Pi, которые я пытаюсь скопировать на карту памяти. У меня есть чтобы разделить ход на две части (исходная папка вдвое больше целевой). Вот сценарий, над которым я работал (весь день!). Я все еще не могу его запустить.
cp -v /home/pi/timelapse "201712140[20331-45246] {} /media/pi/FC33-7BFB1/timelapse
Источник последовательность файлов папок с шагом 15 секунд от 20171214020331
- 20171214045246
.
Команда cp принимает один или несколько исходных файлов, за которыми следует пункт назначения. Если есть несколько исходных файлов (как в вашем случае), местом назначения должен быть каталог (куда все файлы будут скопированы). Согласно комментарию, вы неправильно используете квадратные скобки. Я не знаю, что будут делать фигурные скобки, но, скорее всего, не то, что вы хотите. Предполагая, что вашим первым исходным файлом является / home / pi / timelapse / 20171214020331, что имена файлов не содержат пробелов и что целевой каталог / media / pi / FC33-7BFB1 / timelapse уже существует, попробуйте
cp /home/pi/timelapse/201712140[23]* /media/pi/FC33-7BFB1/timelapse/
Если при этом копируются все файлы, начиная с 2017121402 и 2017121403, вы можете переместить следующий набор, используя [45] и т. Д. Это немного обременительно, но вы начнете свое путешествие к открытию ...
Вы можете попробовать это скопировать файл, найдя по regex
в диапазоне
for file in 201712140*
do
matched="$(echo "$file" | grep -oP '(?<=201712140)([^.]+)')"
if [[ $matched -ge 20331 && $matched -le 45246 ]]; then
cp -v $file /your/location
fi
done
Просто запустите этот скрипт в вашей исходной директории. Сохраните его в файл xyz.sh
и запустите bash xyz.sh