GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Alternative zu „dd“, die die Datei nicht abschneidet?

Kennt jemand eine Alternative für 'dd', die die Datei nicht abschneidet, ohne zu verwenden:conv=notrunc . Hinzufügen von conv=notrunc wird aufgrund des begrenzten Speicherplatzes nicht über Busybox/Toybox unterstützt.

Ich möchte zum Beispiel das Äquivalent von

dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc

Aber das würde dort funktionieren, wo dd unterstützt conv=notrunc nicht .

Akzeptierte Antwort:

Verwenden Sie den Standard <> sh Umleitungsoperator, der die Datei ohne Kürzung im Lese-/Schreibmodus öffnet .

cat < file.in 1<> file.out

Um den Inhalt von file.in zu kopieren am Anfang von file.out .

Wenn Sie in der Eingabe- oder Ausgabedatei suchen müssen und Ihre dd annehmen unterstützt weiterhin diese Direktiven:

dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out

Wenn Sie dd nicht haben überhaupt, Sie können head -c versuchen , vorausgesetzt, Ihre Version sorgt dafür, dass der Zeiger in der Datei beim Beenden an der richtigen Stelle bleibt (was bei älteren IIRC-Versionen von busybox nicht der Fall war).

Das Äquivalent zu Obigem wäre beispielsweise:

{
  head -c 8 > /dev/null        # seek input fd to offset 8
  head -c 12 <&1 > /dev/null   # seek output fd to offset 12
  head -c 12                   # copy 12 bytes
} < file.in 1<> file.out

Linux
  1. Ist es möglich herauszufinden, in welchem ​​Vim/tmux die Datei geöffnet ist?

  2. Woher weiß der Befehl Xdg-open, welche Anwendung zum Öffnen einer Datei verwendet werden soll?

  3. Wie entferne ich die Zeilen, die in Datei B erscheinen, aus einer anderen Datei A?

  4. Welcher Thread verarbeitet das Signal?

  5. Eine Datei, deren Name mit einem Bindestrich beginnt, kann nicht umbenannt werden

Einführung in das Linux-Dateisystem

Verwenden der SSH-Konfigurationsdatei

Cat-Befehl zeigt die Textzeilen nicht an?

Die 10 besten alternativen Windows-Betriebssysteme:Welches ist das Beste für Sie?

Wie kann man eine Datei zeilenweise abschneiden?

Wofür ist das Pluszeichen in einem Symlink, der auf „127.0.1.1:+xxxxx“ zeigt?