Как скопировать файл на 12 ГБ с Ubuntu 19.10 на Android, если Мой размер RAM составляет 8 ГБ

Я попробовал различные варианты для копирования фильма на 12 ГБ с Ubuntu на Android (соединенный как Камера для надежного соединения с mtp еще хуже ситуацией), но удивительно для меня существует проблема дефицита RAM+SWAP (полностью 16 ГБ минус используемая часть), проблема отображена на изображении: RAM+SWAP заполнил 99,9%. Копирование процесса продолжается, Ubuntu зависает в течение минуты и после того, как та ошибка появляется (или не).

Попробованный для копирования с:

  • Приложение файлов
  • Приложение DC (показывает Потоковую ошибку),
  • CP, rsync, dd

Все не работает на меня, тот же результат - память заполненные, копирующие остановки.

Какие-либо идеи, как просто скопировать большой файл с Ubuntu?

2
задан 22 February 2020 в 14:03

3 ответа

1/просто необходимо разделить файл со следующей командой:

zip --split-size 1g zipfilename name_of_your_movie

Это разделит Ваш файл к нескольким заархивированным частям 1 ГБ каждый, которого можно переместить один за другим.

2/Затем повторно собирают части со следующей командой:

zip --split-size 0 zipfilename.zip --out unsplitted

Это создаст объединенный zip-файл, названный unsplitted (это было бы нелепо, если фильм Ваше перемещение "Разделяется" :P)

3/Разархивировали файл unsplitted.zip: unzip unsplitted.zip, и вуаля!

2
ответ дан 17 March 2020 в 00:17

1) Разделите файл на две части с помощью 7Zip (страница справочника) - разделяет файл без сжатия для лучшей скорости. Скопируйте по каждой части в Android, затем с zArchiver или 7zipper установленный на Android, присоединитесь к файлам назад вместе в Ваш огромно размерный фильм.

ИЛИ

2) Уменьшите файл ролика с приложением С открытым исходным кодом Ручной тормоз или эквивалентный к размеру, который не перестал работать. Скопируйте меньший файл.

ИЛИ

3) Повторно закодируйте фильм с помощью HEVC (иначе H.265) с Ручным тормозом или эквивалентный для уменьшения файла, если устройство на базе Android играет HEVC хорошо. Я использую VLC на своем OnePlus 7Pro и работах HEVC как чемпион. Ваш пробег может варьироваться.

ИЛИ

4) Обойдите прямое подключение между ПК и устройством на базе Android и передайте его через WiFi.

1
ответ дан 17 March 2020 в 00:17

Вы можете просто split и cat:

split --size=1G movie.mp4 movie.mp4.split

скопируйте файлы, и в эмуляторе терминала на Android:

cat movie.mp4.split* >> movie.mp4

Как метод zip, это требует дважды суммы пространства. Если Ваш файл является очень большим и существует недостаточно пространства на цели, можно инкрементно связать каждую часть и удалить ее впоследствии:

for part in movie.mp4.split*; do
    cat "$part" >> movie.mp4
    rm "$part"
done

Теперь мы можем автоматизировать этот процесс. Следующее sh сценарий делает

  • разделите указанный файл в частях указанного размера
  • поместите все файлы в каталог
  • генерируйте a sh сценарий для повторной сборки частей

Например, вызов

sh split.sh movie.mp4 100M

создает папку movie.mp4.split с частями размера 100 МБ и сценария unsplit.sh. Тот сценарий повторно собирается movie.mp4 в том же каталоге как movie.mp4.split и удаляет себя и папку впоследствии.

split.sh:

#!/bin/sh

if [ -z "$1" ] ; then
    echo "Please specify the file to split"
    exit 1
fi
if [ ! -f "$1" ] ; then
    echo "File not found: " $1
    exit 2
fi

size=1M

if [ ! -z "$2" ] ; then
    size=$2
fi

filename=$(basename "$1")

dirname="$1".split
mkdir "$dirname"

split --bytes="$size" "$1" "$dirname/part"



unsplit_script="$dirname/unsplit.sh"

cat > "$unsplit_script" <<EOF

#!/bin/sh

working_dir=\$(dirname "\$0")

if [ -f "\$working_dir/../$filename" ] ; then
    echo "File already exists: $filename"
    exit 1
fi

for part in "\$working_dir"/part*; do
    cat "\$part" >> "\$working_dir/../$filename"
    rm "\$part"
done

rm "\$0"
rmdir "\$working_dir/../$dirname"

EOF
chmod +x "$unsplit_script"

exit 0
1
ответ дан 17 March 2020 в 00:17

Другие вопросы по тегам:

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