如何在不打开文件的情况下验证文件是二进制文件还是文本文件?
恐怕是薛定谔的猫。
在不打开文件的情况下无法确定文件的内容。文件系统不存储与内容相关的元数据。
如果不打开文件不是硬性要求,那么有许多解决方案可供您使用。
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(使用前将#替换为@)