标签: binary

在图像上使用 cat 后会产生什么?

假设一个人像这样创建一个文件:

touch myFile
Run Code Online (Sandbox Code Playgroud)

您可以使用 vim 或其他方式在其中输入一些文本,然后使用cat myFile将内容吐出到终端中。

现在,当我在任何图像上使用 cat 时会发生什么?说,

cat myPNG.png
Run Code Online (Sandbox Code Playgroud)

我只是得到一堆垃圾。它只是让我思考cat命令试图做什么,以及所有这些“垃圾”来自哪里。只是好奇。

binary files cat

10
推荐指数
2
解决办法
2963
查看次数

Ubuntu 与 CentOS 和二进制兼容性

我正在尝试安装在 CentOS 4.7 上构建的软件。你知道它是否也能在 Ubuntu 中运行吗?我读过 CentOS 是 100% 二进制兼容的。最新版本的 Ubuntu 也是如此吗?

ubuntu centos binary

10
推荐指数
3
解决办法
2万
查看次数

执行二进制文件:找不到文件

我知道那里有类似的问题,但我还没有找到解决方案,也没有找到这个确切的案例。该二进制文件是使用 GCC 4.7 在 Arch Linux 上构建的。该软件包在构建系统上运行良好。以下命令在以下位置执行:

Linux vbox-ubuntu 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

有问题的文件位于此处。它是一个 Linux 64 位到 Windows 64 位交叉编译器。解压它以~/提供一个~/mingw64包含所有所需内容的目录。

当我尝试运行时,~/mingw64/x86_64-w64-mingw32/bin/as这就是我得到的:

bash: /home/ruben/mingw64/x86_64-w64-mingw32/bin/as: No such file or directory
Run Code Online (Sandbox Code Playgroud)

跑步file ~/mingw64/x86_64-w64-mingw32/bin/as给了我:

/home/ruben/mingw64/x86_64-w64-mingw32/bin/as: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x0b8e50955e7919b76967bac042f49c5876804248, not stripped
Run Code Online (Sandbox Code Playgroud)

跑步ldd ~/mingw64/x86_64-w64-mingw32/bin/as给了我:

    linux-vdso.so.1 =>  (0x00007fff3e367000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2ceae7e000) …
Run Code Online (Sandbox Code Playgroud)

compiling ubuntu binary files patchelf

9
推荐指数
1
解决办法
3万
查看次数

为什么(以及如何)在二进制文件上使用 cat 会弄乱终端?

如果我cat正确理解手册:

连接文件并在标准输出上打印

cat将文件作为参数并将它们打印在标准输出上。
我没有得到的是,如果我使用命令:

cat img.png > copy.png
Run Code Online (Sandbox Code Playgroud)

如果我只是,我将获得 2 个相同的 png 文件

cat img.png  
Run Code Online (Sandbox Code Playgroud)

我很有可能我的终端搞砸了并误解了我输入的内容。

  • 这怎么可能?
  • 二进制值仍然是二进制数据。为什么它不简单地显示一系列 0 和 1 或这些二进制数据的 ASCII 解释或终端中的任何编码?
  • 这种行为是否也可以通过cating 包含奇怪字符的文本文件来实现?
  • 是否应该实现像 try{}catch{} 语句这样的机制来防止这种行为?

terminal binary cat

9
推荐指数
1
解决办法
2万
查看次数

拆分两个串联文件

我已经Afile做了相当于cat a.gif b.7z > Afile.

如何拆分Afile为原始文件a.gifb.7z文件?

split binary cat

9
推荐指数
1
解决办法
897
查看次数

如何使用 Bash 在二进制文件中查找 2 个字节,增加它们的值并替换?

我试图在二进制文件中找到两个字节,然后增加这两个字节的值并在文件中替换它们。这两个字节位于位置 0x82-0x83。现在我已经使用这个成功提取了这两个字节:

#!/usr/bin/env bash
BYTES=$(tail -c +131 "$1" | head -c 2)
Run Code Online (Sandbox Code Playgroud)

这些字节具有值:1B 1F. 我坚持:

  1. 如何将字节转换为整数?应该是6943十进制。
  2. 如何将二进制数据附加/回显到文件
  3. 如何在位置 0x82-0x83 的文件中写入增加的字节。我可以使用head -c 130 original.bin >> new_file.bin && magic_command_writing_bytes_to_file >> new_file.bin && tail -c +133 original.bin,但必须有更好的方法。

我可以在 PHP 中做到这一点,它应该更容易,但我对如何在 bash 中做到这一点很感兴趣。

text-processing conversion binary replace

8
推荐指数
1
解决办法
5420
查看次数

grep 如何确定文件是二进制文件?

我有一个很大的 utf-8 文本文件,我经常用grep. 最近grep开始报告它是一个二进制文件。我可以继续用 搜索它grep -a,但我想知道是什么改变使它决定文件现在是二进制的。

我有一份上个月的副本,该文件不再被检测为二进制文件,但这对diff他们来说不切实际,因为它们在 > 20,000 行上有所不同。

file 将我的文件标识为

UTF-8 Unicode 英文文本,行很长

我怎样才能找到字符/行/等。在我的文件中触发了这个变化?


类似的非重复问题19907涵盖了 NUL 的可能性,但grep -Pc '[\x00-\x1F]'表示我没有 NUL 或任何其他 ANSI 控制字符。

grep text-processing binary

8
推荐指数
1
解决办法
1058
查看次数

从文件中读取确切字节数的 POSIX 方法是什么?

刚刚遇到这个问题,并从选择的答案中学到了很多东西:使用 dd 创建随机数据并获得“部分读取警告”。现在警告后的数据真的是随机的吗?

不幸的是,建议的解决方案head -c不可移植。

对于坚持这dd是答案的人,请仔细阅读链接的答案,其中详细解释了为什么dd不能成为答案。另外,请注意这一点:

$ dd bs=1000000 count=10 if=/dev/random of=random
dd: warning: partial read (89 bytes); suggest iflag=fullblock
0+10 records in
0+10 records out
143 bytes (143 B) copied, 99.3918 s, 0.0 kB/s
$ ls -l random ; du -kP random
-rw-rw-r-- 1 me me 143 Apr 22 19:19 random
4       random
$ pwd
/tmp
Run Code Online (Sandbox Code Playgroud)

dd posix binary head

8
推荐指数
2
解决办法
5755
查看次数

在 bin 中创建程序

我已经编译链接并在 C++ 中创建了一个程序,现在我有了

foobar.out
Run Code Online (Sandbox Code Playgroud)

我希望能够将它放入 bin 目录并像系统范围的命令一样使用它,例如

ssh, echo, bash, cd...
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

linux path binary raspberry-pi

8
推荐指数
3
解决办法
4316
查看次数

如何创建具有特定值的二进制文件?

我需要创建一个只填充11111111.

我只知道如何创建零填充二进制文件

dd if=/dev/zero bs=18520 count=1
Run Code Online (Sandbox Code Playgroud)

你能告诉我应该使用管道中的什么命令来填充垃圾箱1吗?awk在这种情况下我该如何使用?

dd shell-script binary

8
推荐指数
2
解决办法
1690
查看次数