Dela upp filer med split

Någonsin haft problem att föra över stora filer? Det har jag. När överföringen närmar sig ungefär 4,294,967,296 byte så tar det plötsligt stopp. Ingenting hjälper.

Jag orkade inte reda ut om det var FileZilla (på måldatorn, som kör Windows) eller sshd (på källdatorn, som kör OpenBSD) som bråkade. I stället kommer verktygslådan fram. Problemet är nämligen kvickt avhjälpt med ett par gamla unix-verktyg.

På källdatorn, gör:

$ split -b2000m stor-fil.zip stor-fil.zip.

Du kommer få flera filer, 2G stora, som heter stor-fil.zip.xaa, stor-fil.zip.xab, stor-fil.zip.xac och så vidare. För över dem.

På måldatorn är det sedan bara att klistra ihop dem igen (vilket givetvis sker i Cygwin):

$ cat stor-fil.zip.x* > stor-fil.zip

split och cat duger inte bara till stora, binära filer. Med split kan du ange ett regular expression att dela filen vid, och alltså även dela upp textfiler på olika listiga sätt, om du vill.

Ett annat sätt att flytta enorma filer, trots sådana här uppenbara 32 bit-goofar, är med en vanlig pipe. Från källdatorn:

$ cat stor-fil.zip | ssh <måldator> "cat > stor-fil.zip"

Men det är ju inte lika kul.