Blog blog = new Blog("Kamil Pietrzak"); Są dwa typy ludzi. Ci co na palcach jednej ręki liczą do 5 i ci co liczą do 31.

23lut/090

Dzielenie plików w Linuksie

Wczoraj stanąłem przed małym wyzwaniem, przenieść plik ważący 7,2 GB na pendrive o pojemności 4 gigabajtów(chociaż te 4 GB to on ma tylko na papierze, w rzeczywistości 3,6 GB). W pierwszej chwili chciałem stworzyć archiwum i podzielić je na część np. 7zip lub windowsowym WinRAR'em . Jednak najlepszym i najszybszym rozwiązaniem wydało mi się użycie programu Split, jest on częścią pakietu coreutils który standardowo znajduje się w każdej dystrybucji GNU/Linuksa, więc nie ma problemu z dostępnością. Nie trzeba niczego ściągać, instalować bądź korzystać z WINE.

Użycie programu split jest bardzo proste i sprowadza się do wydania jednej komendy w terminalu. Przechodzimy w do katalogu w którym znajduje się plik który chcemy podzielić i wydajemy komendę:
split -b 3600M -d ./nazwa_pliku nazwa_podzielonego_pliku.

Co oznaczają poszczególne parametry?

  • -b Określa rozmiar jednej część pliku, w powyższym przykładzie rozmiar jednej cześć wynosi 3600 megabajtów. Można również użyć innych jednostek:  K-kilobajty, M-megabajty,  G-gigabajty.  Np.  split -b 5G utworzy części  po 5 GB każda.
  • -d Powoduje że sufiks dodawany do nazwy kolejnych części plików będzie liczbą(domyślnie jest to litera) co według mnie znacznie poprawia czytelność.
  • ./nazwa_pliku Jak się można z łatwością domyślić, tutaj należ wstawić nazwę pliku który chcemy podzielić.
  • nazwa_podzielonego_pliku. Kropkę na końcu dodałem w celu poprawieni czytelności, kolejne części pliku będą miały nazwę nazwa_podzielonego_pliku.01 nazwa_podzielonego_pliku.02... Jeżeli nie podamy tego parametru każdy plik będzie miał nazwę 'x' połączoną z numerem części np. x05, x06, x07.

    Mamy już podzielony plik, teraz wypadało by go połączyć w jedną całość w docelowym miejscu. Do polączenia plików użyjemy programu cat. W terminalu przechodzimy do katalogu w którym znajdują się podzielone pliki i wydajemy komendę:
    cat nazwa_podzielonego_pliku.0* > nazwa_połączonego_pliku
    Myślę że z powyższego polecenia nie trzeba tłumaczyć, dodam tylko że zamiast maski '*' możemy podać kolejno wszystkie część co nie jest zbyt wygodne np.
    cat nazwa_podzielonego_pliku.01 nazwa_podzielonego_pliku.02 nazwa_podzielonego_pliku.03 > nazwa_połączonego_pliku

    Komentarze (0) Trackbacks (0)

    Brak komentarzy.


    Leave a comment

    (required)

    Brak trackbacków.