linux + 验证文件是文本还是二进制

2024-01-06

如何在不打开文件的情况下验证文件是二进制文件还是文本文件?


恐怕是薛定谔的猫。

在不打开文件的情况下无法确定文件的内容。文件系统不存储与内容相关的元数据。

如果不打开文件不是硬性要求,那么有许多解决方案可供您使用。

Edit:

许多评论和答案都建议file(1)是确定内容的好方法。它的确是。然而,file(1) opens该文件,该文件在问题中被禁止。请参阅以下示例中的倒数第二行:

> echo 'This is not a pipe' > file.jpg && strace file file.jpg 2>&1 | grep file.jpg
execve("/usr/bin/file", ["file", "file.jpg"], [/* 56 vars */]) = 0
lstat64("file.jpg", {st_mode=S_IFREG|0644, st_size=19, ...}) = 0
stat64("file.jpg", {st_mode=S_IFREG|0644, st_size=19, ...}) = 0
open("file.jpg", O_RDONLY|O_LARGEFILE)  = 3
write(1, "file.jpg: ASCII text\n", 21file.jpg: ASCII text
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux + 验证文件是文本还是二进制 的相关文章

  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • Xvfb 冻结初始化 GLX 扩展

    我正在尝试运行无头 Xvfb 服务器来捕获 Amazon EC2 micro 上的屏幕截图 但它在 GLX 上陷入了困境 我使用此脚本安装了 GLX Xvfb 和所有库 https gist github com joekiller 414
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • 如何从 Bash 命令行在后台 Vim 打开另一个文件?

    我正在从使用 Gvim 过渡到使用控制台 Vim 我在 Vim 中打开一个文件 然后暂停 Vim 在命令行上运行一些命令 然后想返回到 Vim Ctrl Z 在正常模式下 暂停 Vim 并返回到控制台 fg可用于将焦点返回到 Vim job
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • 如何在线程创建和退出时调用函数?

    include
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud

随机推荐

  • 通过 cloudformation 启动实例后,userData 未得到执行

    我创建了一个 AWS cloudformation 它创建了一个启动配置和一个自动缩放组 在启动配置中的用户数据中 我配置了文件系统挂载目标 并安装了cloudwatch代理 代码已编辑 LaunchConfig Type AWS Auto
  • Flexbox 在 Safari 中包裹第一行的最后一列

    在 Safari 和其他一些基于 iOS 的浏览器中查看时 第一行的最后一列会换行到下一行 Safari 镀铬 其他 Code flexthis display webkit box display webkit flex display
  • 为什么 Rust 中的 range/loop 比 java 慢?

    我有一个程序 对于所有小于或等于输入的整数 找到可以表示为两个立方之和的数字 两次 又名拉马努金数字问题 我用 Java 和 Rust 编写了这个 但是 它在 Rust 中的运行速度比 Java 慢两倍多 我能做些什么来让它表现得更好 或者
  • 如何在 Sencha Architect 2 中添加“Ext.require”

    按照说明here http docs sencha com touch 2 0 guide native apis为了使用 Native API 我需要在代码中添加 Ext require 我如何在 Sencha Architect 2 中
  • make 函数如何接受三个参数?

    功能make是这样描述的 func make Type size IntegerType Type 当我们使用make对于切片有时它显示为 make int 0 10 所以我的问题是 怎样才能make函数需要三个参数 这size Integ
  • 如何将 SB3 文件转换为 EXE

    我正在 Scratch 3 上创建一个游戏 但是 当我完成它时 我想将其转换为 exe 文件 我该怎么做呢 我长期以来对游戏开发很感兴趣 甚至以前尝试过Unity 但我只是一个初学者 这对我来说太难了 所以我转向了 Scratch 对的 这
  • 添加到 UISearchDisplayController 时 UISearchBar 被剪裁在状态栏下方

    我希望我的搜索栏将其背景绘制在状态栏下方向上延伸 如下所示 这是上图对应的代码 void viewDidLoad super viewDidLoad self searchBar UISearchBar alloc init self se
  • Meteor 模板助手条件一致返回 false

    我对 Meteor 很陌生 但到目前为止我真的很喜欢在这个平台上编码 我遇到了一些障碍 似乎找不到正确的方法 我想创建一个辅助函数来检查纬度和经度 并根据某个预定义的范围进行检查 如果它落在这些范围之间 则返回 true 我已经包含了我当前
  • close() 没有正确关闭套接字

    我有一台多线程服务器 线程池 它使用 20 个线程处理大量请求 一个节点高达 500 秒 有一个侦听器线程接受传入连接并将它们排队以供处理程序线程处理 一旦响应准备好 线程就会向客户端写入并关闭套接字 一切似乎都很好 直到最近 一个测试客户
  • 如何将两个过程组合在一起来填充一个表,而不是两个过程中的每一个过程填充它自己的表?

    我使用 Sequel Pro 创建了两个表 每个表都在 MySQL 中填充了不同的过程 虽然每个表在运行相应的过程后都包含正确的信息 但我认为如果我更多地合并一些表 我的数据将不再那么分散 因此 我想做的是将两个表中的数据合并为一个 下面是
  • SQLite CURRENT_TIMESTAMP 总是 1970-01-01

    我有以下定义一个表 CREATE TABLE players playerid INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL name VARCHAR 20 NOT NULL UNIQUE added
  • 从chrome发送udp数据包

    网上查资料 如何将udp发送到udp node js服务器 https stackoverflow com questions 7451522 how to send udp to udp node js server JavaScript
  • 如何在 Edmx Designer 中对多对多关系启用级联删除

    我使用 VS2012 和实体设计器来生成数据库和模型 我有一个非常基本的场景 即 Table1 到 Table1 和 2JoinTable 到 Table2 比如学生 班级 学生班级 您可以在多个班级中拥有多个学生 我想要级联删除 因此 如
  • wix - 安装前删除旧程序文件夹

    我需要安装程序在安装程序开始复制新文件之前删除旧的安装目录 如果存在 该文件夹包含程序使用过程中生成的一些文件和子文件夹 它们不包含在安装程序中 因此 我创建了自定义操作来执行此操作 所以 一些代码 首先 自定义操作代码 没什么特别的 Cu
  • Java 运行时环境检测到致命错误:SIGSEGV (0xb) at pc=0x00002b2f7e9b2744, pid=28778, tid=1138739520

    我在执行程序时收到以下错误 而这种情况并不总是发生 代码中包含一些复杂的计算 数据量很大 有人可以帮助识别错误吗 A fatal error has been detected by the Java Runtime Environment
  • fmod 不正确吗? [复制]

    这个问题在这里已经有答案了 给定以下双打 是否fmod返回正确的值 double x 090 double y 003 double r fmod x y r 0 0029999999999999949 为什么r不 0 因为 像大多数十进制
  • 如何在 django 管理站点上授予用户权限

    我正在尝试授予用户对管理站点的有限访问权限 我以超级用户身份登录 并授予用户员工身份和模型权限 可以添加 可以更改 和 可以删除 问题是用户可以登录该网站 但看到以下消息 如果我给他超级用户身份 他可以编辑任何内容 但我想给他有限的访问权限
  • 如何安全地使用 UniqueEntity(在具有多个同时用户的网站上)

    聪明的人可以分享他们用来避免 Doctrine Symfony 中这种基本且常见的并发问题的设计模式吗 设想 每个用户必须有一个唯一的用户名 失败解决方案 Add a 独特的实体 https symfony com doc 3 1 refe
  • 在 Java 中以编程方式设置 Linux 环境变量

    我可以通过以下方式运行 Linux 命令RunTime班级 有没有办法以编程方式从 Java 设置 Linux 全局环境 我想通过 Java 模拟以下 Linux 命令语句 root machine tmp export TEST v2 我
  • linux + 验证文件是文本还是二进制

    如何在不打开文件的情况下验证文件是二进制文件还是文本文件 恐怕是薛定谔的猫 在不打开文件的情况下无法确定文件的内容 文件系统不存储与内容相关的元数据 如果不打开文件不是硬性要求 那么有许多解决方案可供您使用 Edit 许多评论和答案都建议f