在海量文件中搜索特定的魔法字节

adi*_*dib 2 command-line files

我想知道如何搜索特定的文件类型:我已进入 SSH 服务器并尝试搜索.jpg文件,但服务器的所有者(我的老师)已删除所有扩展名。

我已经尝试过grep -lr "JFIF"并且发现了许多具有相同文件名的目录,所以我跳到了一个随机目录,该目录是用该grep命令找到的,我尝试cat在其上使用该命令,但终端无法显示整个二进制文件。

另外strings命令在ssh服务器上被屏蔽了,我老师说你必须找到一个jpg文件,这个文件包含一个序列号(SN),但我不知道在哪里找到它。

如果你们想要SSH cardinals,我很乐意给你们,反正我老师说可以用file命令来做,但我不知道怎么做。

顺便说一句:他说(SN)

Dim*_*ski 12

我会试着给你一些提示,这样你就可以自己解决你的硬件问题。

请按照以下步骤操作:

  1. file通过执行阅读手册man file
  2. 然后尝试一下file somefile,看看会发生什么
  3. 尝试file在不同的文件类型上运行
  4. 到现在为止,您应该能够理解如何确定某个文件是否为 jpeg 图像。
  5. 现在阅读手册find(或使用谷歌找出如何使用它来查找某个目录和所有子目录中的所有文件)
  6. 现在找出如何使用-exec选项find以将其与以前使用的file命令连接
  7. 现在您应该能够找出所需目录中所有文件的文件类型并列出它们
  8. 现在阅读有关管道|grep命令的信息,了解如何仅过滤 JPEG 文件。

  • 我将其发布为答案,非常感谢您的指示:) @incBrain (2认同)

adi*_*dib 5

首先,我要感谢@incBrain和@Serg没有直接回答我的问题,这帮助我理解了很多新东西:)。

我的任务是找到一个.jpg删除了扩展名的特定文件,我想到的第一件事是.jpg 魔术字节JFIF并且通过@incBrain指令我能够构建这个命令

find / -exec file {} \; | grep "JFIF"

该行使用命令将find命令链接到命令,然后获取两个&命令的输出,并将其作为输入通过命令的管道符号传输,该命令仅显示其二进制文件中包含的文件,即。file-execfindfile|grepJFIF.jpg files

我的问题实际上是找到一个特定的序列号,起初我认为序列号包含在文件的二进制文件中,但这是错误的,然后我想到了一个疯狂的想法

哦!为什么我不看看图片是什么样的,我的意思是如果我找不到序列号,得到图片会是一件好事

我在互联网上搜索了一种将文件从 SSH 传输到我的机器的好方法,我发现这段代码很有效!

scp user@example.com:/home/example/file.txt /Local_Directory

我希望这个答案对将来的人有所帮助:)。