标签: file-command

file(1) 和 magic(5) :描述其他格式

我可以使用filemagic( http://linux.die.net/man/5/magic ) 来覆盖其他一些已知格式的描述吗?

例如,我想描述以下格式:

那是“只是”文本文件

或者

那只是一个以幻数开头的压缩文件 BAM\1

?

你知道任何例子吗?

是否可以提供自定义 C 代码来测试文件而不是使用魔术格式?

file-command file-format

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

文件是如何识别这个特定文件的?

我正在file针对 wallet.dat 文件(比特币保存其私钥的文件)运行,即使似乎没有任何可识别的标头或字符串,file仍然可以看出这是一个 Berkley DB 文件,即使我将其减少到 16 个字节。

我知道该文件正在应用某种规则或搜索某种序列来识别它。我想知道它在这里应用的规则是什么,以便我可以在我自己的程序中复制它。

file-command

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

file(1) 和 magic(5) :对结果进行优先级排序

我的问题如下:file(1) 和 magic(5) :描述其他格式

我想描述一个 FASTA 序列(http://en.wikipedia.org/wiki/FASTA_format

它可能是一个DNA 序列(只有 ATGC)

>header
ATGCTAGCATAGCATCGATGCTGTAGCTACGTAGCTACGTCTACG
Run Code Online (Sandbox Code Playgroud)

一个“神奇”的模式将是

>.*\n[ATGC]*
Run Code Online (Sandbox Code Playgroud)

蛋白质序列(也包含 ATGC 的 ACDEFGHIKLMNPQRSTVWYBZX)

>header
AHITKLMNPQRGHIKLMNPQRC
Run Code Online (Sandbox Code Playgroud)

一个“神奇”的模式将是

>.*\n[ACDEFGHIKLMNPQRSTVWYBZX]*
Run Code Online (Sandbox Code Playgroud)

但是每当我使用这些正则表达式时,文件都会告诉我它是一种蛋白质,因为它与第二个正则表达式匹配。有没有办法对结果进行优先排序?有没有办法优先考虑,比如“如果匹配,不要尝试任何其他模式?”。

file-command regular-expression

7
推荐指数
1
解决办法
324
查看次数

如何按内容查找图像文件

我有一个文件列表,我需要从该列表中找到所有图像文件

例如,如果我的列表包含以下内容:

pidgin.tar.gz
photo01.jpg
picture01
screenshot.gif
invoice.pdf
Run Code Online (Sandbox Code Playgroud)

那么我只想选择:

photo01.jpg
picture01
screenshot.gif
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 方法不得依赖于文件扩展名
  • 可以忽略 Photoshop 和 Gimp 的模糊图像格式。(如果feh无法显示,则不是图像)

bash file-command

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

什么可能导致 file(1) 命令出现奇怪的行为?

什么可能导致file(1)命令输出application/msword application/msword(是的,连续两次)作为某些.doc 文件的 MIME 类型?通常它只打印application/msword.

如果在没有--mime它的情况下运行,则会Microsoft Office Document在“普通”和“特殊”.doc 文件上打印。

file-command mime-types files

6
推荐指数
1
解决办法
323
查看次数

Bash 脚本:检查文件是否为文本文件

我正在编写一个基于菜单的 bash 脚本,其中一个菜单选项是发送带有文本文件附件的电子邮件。我在检查我的文件是否为文本文件时遇到问题。这是我所拥有的:

fileExists=10
until [ $fileExists -eq 9 ]
do
  echo "Please enter the name of the file you want to attach: "
  read attachment
  isFile=$(file $attachment | cut -d\ -f2)
  if [[ $isFile = "ASCII" ]]
    then
      fileExists=0
    else
      echo "$attachment is not a text file, please use a different file"
  fi
done
Run Code Online (Sandbox Code Playgroud)

我不断收到错误消息:分隔符必须是单个字符。

shell scripting bash file-command

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

用于深度检查的更复杂的文件命令?

有时似乎标准file命令(我的 Ubuntu 系统上的 5.04)不够复杂(或者我只是使用错误,这很可能)。

例如,当我在一个.exe文件上运行它时,我非常肯定它包含一些存档,我希望输出如下:

$ improved-file foo.exe
foo.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
         .zip archive included (just use unzip to extract)
Run Code Online (Sandbox Code Playgroud)

其他事宜:

  • 它不检测不同格式的串联
  • 它不会检测常见的文件格式,例如 .epub,它只是一个 .zip 容器,里面有一些标准化的 .xml 文件等(file显示“数据”)

包含存档的此类 .exe 文件示例- 我猜测了一些存档格式并尝试了相应的解包命令,并使用了试错法 - 最终奏效了 - 但我更喜欢更自动检查面向工作流。

file-command file-format files

5
推荐指数
2
解决办法
1883
查看次数

如何在脚本中检查文件类型

我想对目录中的所有图像进行循环。图像没有扩展名,所以我必须读取图像的第一个字节才能知道它的类型。循环最终应该是这样的。

for file in *
do
    if [ file --mime-type -b ]
    then
        ***
    fi
done
Run Code Online (Sandbox Code Playgroud)

file-command shell-script files

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

如何使用命令行仅列出根目录下的 JPEG 文件?

我正在寻找一种仅查找 JPEG 文件的方法/由于我对 Linux 的了解有限,我来到了这一点:

  1. 列出从下面根目录存在的所有路径 find /
  2. 将结果通过管道传输到下一个命令并file在每个找到的路径上执行命令xargs file
  3. file命令的结果中包含一个 JPEG 字符串,我想也许可以通过 IF 语句以某种方式仅过滤 JPEG: If (JPEG 包含在文件命令的输出中) {show argument of file}

再一次:

find / | xargs file | "If statement" 
Run Code Online (Sandbox Code Playgroud)

您能否纠正我,给我一个提示如何执行任务或给出解决方案?

find file-command shell-script

4
推荐指数
2
解决办法
5279
查看次数

如何创建仅包含二进制数的文件?

我想创建一个只包含一个二进制数的文件。我认为这touch可以用来创建一个空文件,但是有什么办法可以用二进制数填充它,例如10(十)?以及如何验证文件包含十的二进制值?

另请参阅如何检查整数的 Base64 值?

command-line file-command

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