Мне удалось добиться этого с помощью следующего скрипта bash:
#!/bin/bash
#Location of the zip file
zip_file="/path/to/jpegs.zip"
#Desired location of extracted files
dest_dir="/path/to/extract"
#Unzip the file to the desired location
unzip "$zip_file" -d "$dest_dir"
for f in "$dest_dir/"*.png; do
#Remove path from filename.
filename=$(basename "$f")
#Remove.jpg. from filename.
filename=${filename/.jpg./}
#Change.png to.jpg
filename=${filename/.png/.jpg}
#Rename the extracted files to the preferred naming convention using mv.
mv "$f" "${dest_dir}/${filename}"
done
Если размер вашей новой карты не меньше размера старой карты (ни на один байт меньше ), клонирование старой карты в файл изображения и клонирование файла изображения на новую карту должно работать..
Вы можете сделать это с помощью cat
, или cp
, или pv
, или dd
грубым и рискованным способом. Это должно сработать, но лучше дважды -проверить, чтобы избежать орфографических или других ошибок, которые могут привести к перезаписи ценных данных в процессе клонирования. Эти инструменты будут делать то, что вы им скажете, без каких-либо вопросов, даже если вы перезапишете семейные фотографии.
Вы можете сделать это с помощью Clonezilla . Проще всего создать USB-накопитель из iso-файла Clonezilla. Этот инструмент и быстрее, и безопаснее.
Достаточно разумно копировать только используемые блоки в файловых системах, а также загрузчики, данные таблицы разделов и метаданные файловой системы. Таким образом, свободное место на диске будет пропущено. Так же есть компрессия. Процесс будет быстрее, а образ (в этом случае каталогом с набором файлов )будет намного меньше, чем сырой клонированный образ.
Clonezilla также безопаснее, потому что помогает вам через пользовательский интерфейс «видеть», что вы делаете, и есть последняя контрольная точка, где вы можете убедиться, что делаете то, что хотите.