Jakich innych narzędzi powinienem używać do odczytywania i zapisywania plików ze skrótami, wyszukiwaniem i pomijaniem. Opcje wiersza poleceń dd wydają się niewygodne i obce i nie lubię wybierać między wolnym, ale precyzyjnym trybem wyszukiwania ( bs=1
) a szybkim, ale nieelastycznym ( bs=4k
lub czymkolwiek).
Czy istnieją bardziej nowoczesne narzędzia do odczytu 555 bajtów z jednego pliku (lub potoku, gniazda lub dev) z pozycji 31337 i zapisania ich do drugiego pliku na pozycji 128205 (przy użyciu bloków 512 + 43), z obcięciem lub bez?
dd
. Zawsze możesz owijać wokół niego skrypt powłoki, jeśli nie podoba ci się interfejs.dd
jest w standardzie POSIX , co jest ogromnym plusem.status=noxfer
nie jest domyślna i jest zepsuta i której potrzebujęiflag=fullblock
(pomiń w skrypcie => uszkodzone dane).bs=1
=> cały rurociąg przebiega powoli. Na przykład mogę zrzucić plik wideo, zaczynając od dokładnej klatki. 2. „Zajmuje trochę arytmetyki” => niezbyt nadaje się do onelinerów i rutynowych poleceń powłoki.dd conv=seek_bytes
wykonaseek
pracę z precyzją bajtów.Odpowiedzi:
Jest to narzędzie
ddrescue
(uważaj, jest teżdd_rescue
inny program o prawie takiej samej funkcjonalności). Używa bardziej znanej składni z pojedynczym myślnikiem dla krótkiego lub podwójnego myślnika dla długich opcji. Ze strony podręcznika:źródło
ddrescue - -
->Infile and outfile are the same.
,ddrescue /dev/stdin /dev/stdout
->Infile and outfile are the same.
. Zły początek historii ...dd_rescue
. Wyświetla ostrzeżenie, że plik (standardowe wejście) nie jest widoczny, ale kontynuuje działanie. Możesz spróbować. Jednakddrescue
czuje się w pełni funkcjonalny i dojrzały.ddrescue
ma rację, rury nie są widoczne. Jeśli chcesz rozpocząć czytanie w określonym punkcie pliku, musisz dać mu dostęp do tego pliku, a nie danych przesyłanych z innego programu. Uważaj też na to, że używanie rur walczy z twoim pragnieniem najwyższej prędkości, ponieważ jedynym sposobem naśladowania wyszukiwania w rurze jest czytanie i wyrzucanie części, których nie chcesz przetwarzać. Wyszukiwanie w obrębie rzeczywistego pliku jest znacznie bardziej wydajne.Dobrą alternatywą jest
pv
. Nie tylko automatycznie oblicza najbardziej efektywny rozmiar bloku, zasadniczo przyspieszając rzeczy, ale także zapewnia postęp, między innymi. Jego użycie jest proste:Bardzo dobrze gra również z kompresją. Szybki sposób na wykonanie kopii zapasowej i kompresowanie dysku jednym ruchem to:
Możesz dowiedzieć się więcej tutaj .
źródło
dcfldd to kolejna alternatywa dd. Nie odpowiada na pytanie OP dotyczące elastyczności wyszukiwania danych wejściowych / wyjściowych, ale może być przydatne dla innych osób przybywających tutaj za pośrednictwem wyszukiwarki Google.
Opiera się na gnu dd, z następującymi dodatkowymi funkcjami:
źródło