Linux: Jak podzielić duży plik na mniejsze pliki?

10

Mam gigantyczny plik (> 20 koncertów) na mojej maszynie źródłowej i muszę przenieść go na maszynę docelową. Na potrzeby tego pytania załóżmy, że nie mam połączenia sieciowego między dwoma komputerami.

Muszę podzielić ten plik na serię mniejszych plików, zapisać mniejsze pliki na dyskach DVD, a następnie ponownie złożyć wszystko na komputerze docelowym.

Zarówno maszyny źródłowe, jak i docelowe to Linux. Czy istnieje sposób na osiągnięcie tego celu tar? Mam wrażenie, że muszę użyć tego --multi-volumeparametru. Jakie są moje opcje?

Muszę być w stanie określić rozmiar plików woluminu, aby upewnić się, że każdy zmieści się na jednym dysku DVD.

Dzięki!

Runcible
źródło

Odpowiedzi:

14

Użyj polecenia podziału.

split -b 22 m newfile.txt new podzieliłby plik „newfile.txt” na trzy osobne pliki o nazwach newaa, newab i newac, każdy o rozmiarze 22 MB.

duffbeer703
źródło
3
Uważaj, aby utworzyć przedrostek „nowy”, który udostępniasz w oryginalnym pliku „newfile.txt”. Teraz, gdy spróbujesz to zrobić cat new* > newfile.txt, wybuchnie!
Robert Martin
@RobertMartin Dobry połów!
duffbeer703
6

Inne odpowiedzi obejmują splitpołączenie ich w jeden plik główny, którego właśnie używasz cat.

koenigdmj
źródło
3

Można to łatwo zrobić za pomocą podziału , który powinien być już dostępny w bazie twojej dystrybucji, ponieważ jest on częścią GNU Coreutils .

Jan Jungnickel
źródło
0

podział -b 4000000000 nazwa_pliku

Utworzy każdy plik o wielkości 4 GB


źródło