Chcę wziąć folder 78 GB i zapisać go w jednym pliku (do przesłania do usługi w chmurze), tak jakbym kompresował go w archiwum, ale nie chcę żadnej kompresji (nie mam tak dużo procesora dostępny czas). Czy w ogóle mogę to osiągnąć, być może terminalne polecenie, o którym nie wiem?
shell
files
compression
cjmaria
źródło
źródło
tar
w Linuksie jest polecenie.tar -cf long.file.tar folder
lzop
Jest przeznaczony do prędkości.Odpowiedzi:
Użyj
tar
:tar -cf my_big_folder.tar /my/big/folder
Przywróć archiwum za pomocą
tar -xf my_big_folder.tar -C /
-C przejdzie do katalogu głównego, aby przywrócić archiwum, ponieważ utworzone powyżej archiwum zawiera ścieżki bezwzględne.
EDYCJA : Ze względu na stosunkowo duży rozmiar archiwum najlepiej byłoby wysłać go [bezpośrednio] do jego ostatecznej lokalizacji, używając SSH lub punktu montowania zasobu / folderu w chmurze. Na przykład, jak sugeruje Cole Johnson :
lub
EDYCJA : Jak sugeruje również Blacklight Shining , jeśli chcesz unikać ścieżek bezwzględnych, możesz przejść do rodzica dużego folderu, a
tar
stamtąd:lub
Refleksje osobiste
To, czy uwzględnić ścieżki względne czy bezwzględne, jest kwestią osobistych preferencji.
Zdarzają się przypadki, że ścieżki bezwzględne są oczywiste, np. W przypadku przywracania w przypadku odzyskiwania po awarii. W przypadku lokalnych projektów lub kolekcji archiwizowanie drzewa katalogów od rodzica wybranego folderu jest powszechne, aby uniknąć zaśmiecania bieżącego katalogu, na wypadek, gdyby archiwum zostało przypadkowo rozpakowane na miejscu. Jeśli big_folder leży gdzieś głęboko w standardowej hierarchii * NIX , sensowne może być rozpoczęcie archiwizowania pierwszego niestandardowego folderu, z którego odchodzi big_folder, i stamtąd jego drzewo katalogów.
Wreszcie - przechodząc tutaj pedantycznie -
tar
członkowie archiwum są zawsze względni, ponieważ a) można je przywrócić w dowolnym katalogu ib)tar
usuwa wiodące/
podczas tworzenia archiwum. Osobiście zwykle używam -C podczas rozpakowywania archiwum.źródło
tar -cf /network/mount/point/folder.tar /folder
zamiast tarowania na komputer lokalny, a następnie prześlij, jeśli możesztar -cf $archive.tar -C $source_dir .
. Jeśli komputer docelowy nie ma katalogu o tej samej ścieżce co katalog źródłowy, musisz to zrobić. Po prostu-C
wyodrębnij (mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir
) katalog do nowego katalogu ; w przeciwnym razie zawartość archiwum zostanie zrzucona do dowolnego katalogu, w którym się znajdujesz.Alternatywnie: cpio
Rozpakowywanie do bieżącego katalogu:
Ostrzeżenia:
find /my/big/folder
zamiastcd
, archiwum będzie zawierać pełne ścieżki, a ekstrakcja spróbuje je podążać;źródło