不懂就问: Linux 默认创建的文件是什么后缀格式的?
如果可以的话,顺便问问 windows 下的文件默认是什么格式的后缀好了。
后缀指的是文件名中最后一个句点之后的内容。文件名里没有句点,就没有后缀。这就是一个无后缀文件。
而扩展名完全是属于文件名的一部分,只是为了人容易识别,不代表文件的真实格式。相当于文章的标题,不能说我标题中带有“诗歌”两个字,我的正文就一定是诗歌。
比如说你可以创建
a.
.a
a
这三个不同的文件,Linux 上也是,Windows 上也是。后缀名早就不是必须的东西了。
或者你看一下 Makefile,请问后缀名是啥? 又一个文件名本身就是规则的。
windows 里表述可执行的后缀是 exe 么? 那 linux 里可执行是怎么表示的? ls -l 看一下,有没有可执行权限就好。
综上,个人观点:“后缀名只是文件用来表述规则的一种方法而已, 而不是后缀名就是一切的规则。”
===========================================
以下是一些可能是错误的认知经验:
愿你能理解我的表述。另外,理解系统的设计哲学之后再对比映射就好。
比如 linux 的设计哲学之一就是“一切皆文件”, 设备也是文件( cat /dev/ttyusb0 就可以读取 usb 串口,而不是 windows 那种打开一个程序-比如串口大师什么的,然后再解析),属性也是文件(”cat /proc/cpuinfo” 就是查看 cpu 属性)
诸如此类的还有流这个概念,引发出管道,也就是 UNIX 设计哲学里一切都是精简的可服用的小的模块,这个看看《 UNIX 设计哲学》还有一些相关的材料,愿你可以很快理解
windows 设计哲学比较复杂,但是有一个是“所见即所得”,一个是窗口化,所以有了常见文件类型映射固定图标,以完成这件事儿,即见到这图标,就知道这是个什么类型的文件。 (这是一种感知 /交互的 规则)
如果这个事儿,换到 ios 上,你会发现,又不一样了。。。。
操作系统是门设计艺术。 套用不同体系下的规则去相互理解,有很多时候百害而无一利。
@msg7086 见上,a. 和 .a 在 windows 下需要点技术…… 当然这不是本质问题
说来我想起来 win98 (还是因为 FAT32 ?)下 mkdir a../ 会造成一个巨大的问题,会产生一个资源管理器无法遍历到,但可以访问的隐藏文件夹。
…… 然后看了下,Win10 2004 Build 19041.508 仍然有这个 bug,但命令行下屏蔽了 mkdir a../ 的操作,拒绝了新建这样的文件夹…… 但可以从 WSL 里
$ mkdir a
$ mkdir a.
$ mkdir a..
$ touch a/zero
$ touch a./one
$ touch a../two
$ tree
然后从资源管理器里访问,不管点开哪个都只能看到 zero……
从 “无法遍历到,但可以访问” 变成了 “无法遍历也无法访问”……
服了,千古 bug 。
PyCharm Community 2020.2, CMD, PowerShell 7.0.2, python 3.8.5, Notepad++ v7.8.8
a == a. != a.. != a…
z == z. == z.. == z…
Total Commander 9.22a
a == a. != a.. != a…
z != z. != z.. != z…
explorer[.]exe tree[.]com
a == a. == a.. == a…
z == z. == z.. == z… (也许)
WSL1, VSCodium
a != a. != a.. != a…
z != z. != z.. != z…
顺便,上述中 PyCharm 可能蕴含了 Java 访问文件系统的方式,VSCodium 可能蕴含了 node 访问文件系统的方式。
file bash_rc
file xxx.iso
当初 win98 explore 的表现为 a == a. != a.. 的时候,我拿来电脑课上藏游戏
因为电脑教室很多人用,游戏存档会被别人动
所以我就藏了一份自己的……
地址栏直接输入 D:a.. 就能进隐藏文件夹了,D: 下面看不到 a..,只能看到 a.(尽管我并没有新建 a.,但自动产生了)
linux 没有后缀这个概念
@ppphp 我知道啊,我的意思是,单纯创建了一个文件,写入几行内容,这个文件叫什么文件?
@mtdhllf 还是那句话,我创建了一个文件,写了几行内容,这个文件叫什么文件?
写了几行内容是啥文件?取决于你写了啥啊,vi 还能二进制编辑呢,完全可以写个 mp4 exe 出来啊
默认是两者要相统一,虽然有的时候可以不遵守
你所说的那个 “类型” 或者 “格式” 不是一个明确的概念或者固有属性。
我怀疑你在钓鱼
@solider245 区别与
目录文件
字符设备文件
块设备文件
本地 socket 文件
命名管道文件
符号链接文件
之所以这么说,是因为创建文件的方法只能创建出普通文件。 。。(文件夹得 mkdir,设备文件 mknod,管道 mkfifo,socket 是 bind,符号链接 symlink,普通文件 open )
普通文件下的细分系统是不管的,除非文件开头几个字节命中一些特殊的魔法数字
所以主看看自己说的是哪个应用程序,操作的是什么文件,用来干什么的。再了解一下那个应用程序对后缀有什么要求,有什么操作。
windows 上是一个可视化交互式的操作系统为了把文件跟应用程序绑定弄的一个便捷操作. (应用可以向系统注册表写入 xx 后缀的文件打开)
场景 1: 你把一个 zip 文件的后缀去掉,再打开操作系统也是会询问你用什么应用打开.
场景 2: 你下载了一个种子文件,但是你没有装任何解析种子 的应用. 操作系统会询问你用什么应用打开.
linux 上没有应用程序这一说,所以不存在什么后缀.只是人为的记忆习惯配置后缀.
另外,问这个文件是什么类型:
“`
#>>>>>>>>v
print(1)#>3N.i2
“`
它既是一个合理的 python 源文件,也是合理的 Vim ( V 语言)源文件,也是合理的 Minkolang 源文件
并且,作为 python 源文件,它输出 1,Vim ( V 语言)输出 2,Minkolang 输出 3
请问它是什么类型?
更别说古老的隐写术
“右击本图片另存为,修改后缀名为 rar,即可得到种子文件”
核心在于,图片基本是文件头定长,RAR 文件依赖于 RAR! 头,所以只要 cat a.jpg b.rar > c.jpg 可以简单方便地内插出一个既是 jpg 又是 rar 的文件。
1. 可以凭空创造一种文件。
2. Windows 和 Linux 都可以凭空创造一种文件。
3. 任何人(懂编程的,不懂编程的)都可以凭空创造一种文件。
4. 事实上一切文件类型都是凭空创造的,包括 word 文件、excel 文件、jpeg 文件等等,都是凭空创造的。
5. 创造 word 文件、excel 文件、jpeg 文件的过程,与你现在凭空创造另一种全新的文件类型的过程,本质上是一样的,只是复杂度不同,没有本质区别(步骤也是一样的)。
后缀这玩意主要是方便人的。就好像是你给一个压缩包取名“2020 年我钓到的鱼图集.rar”
维基百科:
文件扩展名更重要的作用是让系统决定当用户想打开这个文件的时候用哪种软件运行,如 Windows 系统中 exe 档案是可执行档,doc 档案默认用 Microsoft Word 打开的 Word 文件。
还有,文件格式取决于其二进制内容符合哪些格式的表达标准,和后缀没关系
正确的例子是, 有一个生物, 你知道他是个生物, 他就是个生物, 他既可以是人, 也可以是狗子
你不是生了个娃, 你是神, 你造了个生物
在 Windows 下或者 Linux 下,当你试图双击某个文件打开的时候,到底发生了什么?系统是以一种什么方式访问某段硬盘数据并调用某个程序打开的?