Jak mogę podzielić duży plik + 4 GB na mniejsze pliki o wielkości około 500 MB każdy.
Jak mam je ponownie złożyć, aby uzyskać oryginalny plik?
Jak mogę podzielić duży plik + 4 GB na mniejsze pliki o wielkości około 500 MB każdy.
Jak mam je ponownie złożyć, aby uzyskać oryginalny plik?
Odpowiedzi:
Możesz użyć split i cat .
Na przykład coś takiego
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(gdzie wejściowa nazwa pliku to foo
ostatni argument wyjściowy). Spowoduje to utworzenie plików takich jak foo.000 foo.001
...
To samo polecenie z krótkimi opcjami:
$ split -b 100k -d -a 3 foo foo
Możesz także określić „--line-bytes”, jeśli chcesz, aby dzielił się na granicach linii zamiast tylko dokładnej liczby bajtów.
Do ponownego złożenia wygenerowanych elementów możesz użyć np .:
$ cat foo.* > foo_2
(zakładając, że powłoka sortuje wyniki globowania powłoki - a liczba części nie przekracza zależnego od systemu limitu argumentów)
Możesz porównać wynik poprzez:
$ cmp foo foo_2
$ echo $?
(co powinno dać wynik 0)
Alternatywnie możesz użyć kombinacji find / sort / xargs, aby ponownie złożyć elementy:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
man split cat md5sum
cat foo.{000..NNN}
gdzie NNN
jest ostatni oczekiwany element. W ten sposób pojawia się komunikat o błędzie, jeśli brakuje jednego z elementów. Zauważ jednak, że -d
uzyskanie sufiksów numerycznych jest specyficzne dla podziału GNU; na innych platformach masz do czynienia z foo.aaa
, foo.aab
itp
split
KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 itd.
... cat > foo_3
być ... cat >>foo_3
?
rar
i 7zip
są często używane do ułatwienia składania takich podziałów między platformami
Możesz to również zrobić za pomocą Archive Managera, jeśli wolisz GUI. Zajrzyj do „Zapisz-> Inne opcje-> Podziel na tomy”.