Используйте стандартный<>
sh
оператор перенаправления, который открывает файл в режиме чтения+записи без усечения .
cat < file.in 1<> file.out
Чтобы скопировать содержимое file.in
в начало file.out
.
Если вам нужно выполнить поиск во входном или выходном файле и предположить, что ваш dd
по-прежнему поддерживает эти директивы:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
Если у вас вообще нет dd
, вы можете попробовать head -c
, предполагая, что ваша версия позаботится о том, чтобы указатель в файле оставался в нужном месте при выходе (, какие старые версии busybox IIRC были не делать ).
Например, эквивалентом вышесказанного будет:
{
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
Это автономная -Java-программа, основанная на нескольких «трюках»:
META-INF/MANIFEST.MF
), указывающий запускаемый класс Java; java -jar
, учитывая файл JAR, просмотрит манифест и запустит соответствующий класс, загрузив любые другие необходимые ресурсы из файла JAR и среды выполнения Java (можно также указать другой класс для запуска, но здесь это не имеет значения ); Итак, svg2png
— это файл JAR, но с предваряемым сценарием оболочки:
#!/bin/sh
exec java -Xmx1G -jar "$0" "$@"
При запуске будет запущена оболочка, которая затем заменит себя на java -Xmx1G -jar
и имя «сценария»(svg2png
с любым использованным путем )и любыми аргументами. -Xmx1G
устанавливает размер кучи, а -jar
указывает JVM «запустить» данный файл JAR, в данном случае svg2png
. Остальная часть svg2png
— это файл JAR; в частности, он содержит следующий манифест:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: sterlp
X-Compile-Target-JDK: 1.8
X-Compile-Source-JDK: 1.8
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_51
Main-Class: org.sterl.svg2png.Main
Это указывает JVM запустить класс org.sterl.svg2png.Main
, который запускает программу.
Вы найдете более подробную информацию о формате ZIP в Википедии , в частности описание структуры, которое показывает, как формат допускает произвольные данные в начале файла (и в других позициях ). ZIP-файлы идентифицируются по их «центральному каталогу», который находится в конце файла.