Czy mogę obliczyć sumę kontrolną pliku podczas jego tworzenia?


4

tarTworzę duże archiwum i chciałbym również utworzyć sumę kontrolną archiwum. Mógłbym to osiągnąć w następujący sposób:

$ tar cfz archive.tar.gz files
$ sha256sum archive.tar.gz > archive.tar.gz.sha256sum

Ale plik archiwum jest ogromny i działa na wolnych nośnikach, więc wolałbym nie czytać go ponownie po jego zapisaniu.

Czy mogę zbudować potok, który będzie mieszał plik podczas jego zapisywania? Pomyślałem, że mógłbym to zrobić za pomocą teenarzędzia, ale zapisuje to tylko plik, a nie standardowe wejście innego polecenia.

Odpowiedzi:


5

Odpowiadając na moje pytanie:

Tak, możesz użyć podstawienia procesu tee i bash:

tar cfz - files | tee >(sha256sum) | cat > archive.tar.gz

1
Drobne poprawki: Prawdopodobnie nie potrzebujesz części „ | cat”, możesz po prostu napisać ją bezpośrednio. Prawdopodobnie chcesz też podkomendę („ (sha256sum)” gdzieś napisać, tj.(sha256sum >archive.tar.gz.sha256sum)
MAP

3
Po prostu użyj | tee archive.tar.gz | sha256sum.
grawity
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.