是否可以在不传入文件名的情况下使用 curl 并发布二进制数据?例如,您可以通过 --data-binary 使用二进制发布表单:
curl -X POST --data-binary @myfile.bin http://foo.com
Run Code Online (Sandbox Code Playgroud)
但是,这需要文件存在。我希望能够将 HTTP 调用(例如休息服务)记录为 curl 命令的文本以重现请求。(例如,这极大地有助于调试这些服务)
但是,记录引用文件的 curl 命令没有用,所以我希望我可以实际记录原始二进制数据,大概是 base64 编码的,但仍然允许您复制和粘贴记录的 curl 命令并执行它。
那么,是否可以在不引用文件的情况下使用 curl 并发布二进制数据?如果是这样,那将如何运作?一个例子会是什么样子?
我是 UNIX 的新手,我正在使用 Kirk McElhearn 的“Mac OS X 命令行”自学一些命令。
我正在尝试使用trandgrep以便我可以在常规 MS-Office Word 文档中搜索文本字符串。
$ tr '\r' '\n' < target-file | grep search-string
Run Code Online (Sandbox Code Playgroud)
但它返回的只是:
Illegal byte sequence.
Run Code Online (Sandbox Code Playgroud)
robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS
tr: Illegal byte sequence
robomechanoid:Position-Paper-Final-Draft robertjralph$
Run Code Online (Sandbox Code Playgroud)
我实际上在我创建的脚本上运行了同一行,vi并且它正确地进行了搜索。
有没有办法在 macOS 中运行 Linux 二进制文件?我试图运行一个二进制文件,但它说它不可执行。
我有一个上下文,我需要在 shell 脚本中将二进制转换为十六进制和十进制,反之亦然。有人可以建议我一个工具吗?
我正在研究 Oracle Linux 9(XFS 文件系统)上二进制文件的行为。当进程调用此二进制文件时,会在其下创建一个目录/tmp并将一些文件复制到其中。每次进程运行时,此目录都会获得一个随机名称(关键字 + GUID)。
之后,它立即删除该目录。我想在删除该目录之前访问该目录中包含的文件,但对于我的任何命令来说,整个过程结束得太快了。
有什么方法可以在删除该目录之前“拦截”并复制该目录吗?
我想生成一个随机密码,并且这样做:
</dev/urandom tr -dc [:print:] | head -c 64
Run Code Online (Sandbox Code Playgroud)
在我运行 Ubuntu 的笔记本电脑上,这仅产生预期的可打印字符。但是,当我通过 ssh 连接到运行 Red Hat Enterprise Linux 的学校服务器并在那里运行时,我得到类似 的输出3!ri?b?Gr???1?H?<?oM????&?nMC[?Pb?|L%MP?????9??fL2q???IFmsd|l?K,但根本无法执行。这里可能出了什么问题?
GNUmd5sum命令有两种模式:二进制模式和文本模式。我想区别仅在于如何处理换行符?我对吗?
在 GNU/Linux 上,这两种模式总是产生相同的结果,所以-b和-t选项的唯一用途是指示在文件名之前使用的标志(*或)?
在什么情况下模式会产生不同的结果?在 Windows/MacOS 系统上?(这些平台的版本可用吗?)
由于种种原因,我雄心勃勃地尝试将 c++ 代码转换为 bash。
此代码读取和操作特定于我的子字段的文件类型,该文件类型完全以二进制形式编写和构建。我的第一个与二进制相关的任务是完全按原样复制头的前 988 个字节,并将它们放入一个输出文件中,我可以在生成其余信息时继续写入该文件。
我很确定我当前的解决方案不起作用,实际上我还没有找到确定这一点的好方法。因此,即使它实际上编写正确,我也需要知道如何测试以确保!
这就是我现在正在做的:
hdr_988=`head -c 988 ${inputFile}`
echo -n "${hdr_988}" > ${output_hdr}
headInput=`head -c 988 ${inputTrack} | hexdump`
headOutput=`head -c 988 ${output_hdr} | hexdump`
if [ "${headInput}" != "${headOutput}" ]; then echo "output header was not written properly. exiting. please troubleshoot."; exit 1; fi
Run Code Online (Sandbox Code Playgroud)
如果我使用 hexdump/xxd 来检查文件的这一部分,虽然我不能完全阅读其中的大部分内容,但似乎有些不对劲。我为比较而编写的代码只告诉我两个字符串是否相同,而不是按照我希望的方式复制它们。
有没有更好的方法在 bash 中做到这一点?我可以简单地复制/读取本机二进制中的二进制字节,逐字复制到文件吗?(理想情况下也存储为变量)。
我的目标是能够为嵌入式 Linux 进行开发。我有使用 ARM 的裸机嵌入式系统的经验。
我有一些关于针对不同 cpu 目标进行开发的一般问题。我的问题如下:
如果我有一个应用程序编译为在“ x86 目标,linux 操作系统版本 xyz ”上运行,我可以在另一个系统“ ARM 目标,linux 操作系统版本 xyz ”上运行相同的编译二进制文件吗?
如果上述情况不正确,唯一的方法是使用相关工具链“例如 arm-linux-gnueabi”获取应用程序源代码来重建/重新编译?
同样,如果我有一个可加载的内核模块(设备驱动程序)可以在“ x86 目标,linux 操作系统版本 xyz ”上运行,我是否可以在另一个系统“ ARM 目标,linux 操作系统版本 xyz ”上加载/使用相同的编译 .ko ?
如果以上不正确,唯一的方法是使用相关工具链“例如 arm-linux-gnueabi”获取驱动程序源代码来重建/重新编译?
我正在尝试了解文件系统层次结构标准。我已经查找了二进制文件和库,据我目前的理解:
二进制文件是二进制格式的计算机可读代码文件,它们直接用位控制 CPU 和处理器。
库是各种程序可以使用的函数,为了方便起见——比如当你需要一个 PHP 的 Javascript 模块时。
这种理解是否正确?如果是,为什么我们仍然将库和二进制文件分开?有些库是二进制文件,对吧?并且一些二进制文件(cat、less、date、rm、cp 等)被使用和重用,就好像它们是库一样......有人可以帮助解释差异并帮助我为这两个词找到更好的定义吗?谢谢你。
binary ×10
portability ×2
tr ×2
application ×1
arithmetic ×1
bash ×1
curl ×1
fhs ×1
file-copy ×1
files ×1
grep ×1
hashsum ×1
head ×1
libraries ×1
process ×1
shell ×1
shell-script ×1
text ×1
tmp ×1