如何将多个二进制文件复制到Linux系统上的一个文件中?

Aha*_*ius 49 binary bash copy

我需要将包含二进制文件的文件夹的内容复制到另一个目录中的一个二进制文件中.

在Windows中我可以使用:

copy file1 + file2 targetfile /B 
Run Code Online (Sandbox Code Playgroud)

我找不到类似于Linux的东西(我看到了一种方法cat,但我不确定这是否适用于二进制文件).

gee*_*aur 81

Unix在文本和二进制文件之间没有区别,这就是为什么你可以将cat它们放在一起:

cat file1 file2 > target_file
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这会弄乱二进制数据。我猜这是由某些编码问题引起的?二进制数据内的 ASCII 字符串在生成的文件中是正常的,但 ASCII 范围之外的字节会混乱(我猜它们被 UTF-8 替换所取代?)。我怎样才能告诉 cat 忽略编码并只连接每个字节的文件? (4认同)
  • 从我到处读到的内容来看,猫不应该关心编码,而只需要处理二进制文件。但我的情况并非如此。我在 appveyor Ubuntu 环境中使用 /bin/cat 。也许他们用了另一只猫? (2认同)
  • 旁注:如果 target_file 预先存在并且您想要向其中追加内容而不是覆盖它,请使用 >> 运算符而不是 >。 (2认同)

cho*_*oba 31

cat是一个非常有用的实用程序,它将一个或多个文件的内容输出到标准输出.可以将shell-funcionality重定向到文件中.它将与二进制或ascii文件一起使用.在一些不使用链接的编程语言中,cat用于将二进制文件合并为单个可执行文件.

cat file1 file2 > target_file
Run Code Online (Sandbox Code Playgroud)