Jeśli mam duży plik i muszę go podzielić na 100 megabajtów, zrobię to
split -b 100m myImage.iso
To zwykle daje mi coś takiego
xaa
xab
xac
xad
I żeby je z powrotem połączyć, używałem
cat x* > myImage.iso
Wydaje się, że powinien istnieć bardziej wydajny sposób niż czytanie każdego wiersza kodu w grupie plików cati przekierowywanie danych wyjściowych do nowego pliku. Jak sposób na otwarcie dwóch plików, usunięcie EOFznacznika z pierwszego i połączenie ich - bez konieczności przeglądania całej zawartości.
Windows / DOS ma polecenie kopiowania plików binarnych. Pomoc wspomina, że to polecenie zostało zaprojektowane tak, aby móc łączyć wiele plików. Działa z tą składnią: ( /bdotyczy trybu binarnego)
copy /b file1 + file2 + file3 outputfile
Czy istnieje coś podobnego lub lepszy sposób łączenia dużych plików w systemie Linux niż cat?
Aktualizacja
Wygląda na catto, że jest to właściwy sposób i najlepszy sposób łączenia plików. Cieszę się, że przez cały czas używałem właściwego polecenia :) Dziękujemy wszystkim za opinie.
cat x*możesz rozważyć rozszerzenie nawiasów klamrowych, cat xa{a..g}które rozszerza określoną sekwencję do cat xaa xab xac xad xae xaf xag
cat x*? Czy nowe ustawienie regionalne nie wpływa również splittak, że jeśli spliti cat x*były używane w tym samym systemie będą zawsze działa?
split.cw GNU Coreutils, przyrostki są zbudowane ze stałej tablicy znaków: static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";. Ustawienia regionalne nie będą miały wpływu na przyrostek. (Ale nie sądzę, że jakikolwiek rozsądny lokalny porządek zmieniłby małe litery; nawet EBCDIC zachowuje ich standardową kolejność.)
cat x*, ponieważ kolejność plików zależy od ustawień regionalnych. Lepiej zacznij pisaćcat x, niż naciśnij Esc, a następnie*- zobaczysz rozszerzoną kolejność plików i możesz zmienić kolejność.