Стандартная утилита linux для объединения файлов без оболочки - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь добавить содержимое одного файла в другой существующий файл. Это тривиально с оболочкой. Я пытаюсь сделать это одной командой без оболочки. Возможно ли это?

Я в основном хочу выполнить:

cat file2 >> file1

К сожалению, среда, в которой я работаю, не является оболочкой и поэтому не поддерживает оператор >>.

Существует ли какой-нибудь относительно стандартный инструмент linux, который бы делал это, кроме использования только такой оболочки, как:

sh -c "cat file2 >> file1"

РЕДАКТИРОВАТЬ: Я ищу один вкладыш, который я могу поместить в службу systemdExecStart= директива. Да, вариант, который я выложил выше, работает, я просто думаю, что он хакерский.

Я удивлен, что нет инструмента, чтобы сделать это точно.

Я также мог бы сделать файл my-script.sh что я звоню из systemd, который делает то, что я хочу. Но это дополнительный файл, и он кажется еще более «хакерским», чем первое возможное решение.

Если не существует стандартного инструмента, который бы это делал, то я думаю, что «ответом» на мой вопрос будет «нет».

1 Ответ

2 голосов
/ 25 октября 2019

Звучит как XYProblem , но вы можете использовать dd:

dd if=file2 of=file1 conv=notrunc oflag=append

Если вы не используете GNU dd, поддерживающий oflag=append, вы можете указать байтсмещение вручную:

dd if=file2 of=file1 bs=1 seek=insert_size_of_file1_in_bytes_here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...