对于命令 ls
-F, --classify
append indicator (one of */=>@|) to entries
Run Code Online (Sandbox Code Playgroud)
维基百科说*
代表可执行文件和/
目录。常规文件后不跟上述任何符号。
但也*
遵循文本文件和pdf文件。它们是可执行文件吗?
不要在-F
指标总是意味着相同的第一个字段-rwxrwx---
?
似乎硬链接和-F
指标中的文件或-rwxrwx---
. 你如何区分它们?
谢谢。
Mic*_*mer 15
在作为目录的每个路径名之后立即写入 ( '/' ),在每个可执行的路径名之后写入 ( '*' ),在每个作为 FIFO 的路径名之后写入 ( '|' ),以及一个 at-sign ( '@' ) 之后是一个符号链接。
... '=' 表示插座,'>' 表示门
=
也存在于主要的 BSD 中(FreeBSD、OpenBSD、NetBSD、OS X)。除了 OpenBSD 之外的所有这些还包括%
用于 whiteouts。大多数商业 Unices 包括=
,但它是非标准的。
*
如果文件被标记为可执行文件——也就是说,如果设置了可执行位,则A将出现在文件之后。这并不一定意味着您可以实际运行该文件。您可以使用chmod -x
;取消设置可执行位。通常,您不希望文本文件和 PDF 可执行,因此您可以这样做。可执行文件也将具有x
inls -l
输出。
对于其他人:
/
表示一个目录,这很简单。|
表示一个 FIFO,它是一个命名管道mkfifo
(数据可以写入其中,并且正好读回一次)。@
表示用 建立的符号链接ln -s
,它是另一个路径的别名。=
表示一个套接字,一个用于与其他进程通信的特殊文件。>
for door是某些系统的另一个进程间通信功能。%
for whiteouts 表示用于标记在联合文件系统堆栈的上层中进行的删除的特殊文件。“常规文件”是您通常认为的文件,您可以将数据写入其中并稍后读回。或者,您可以将其视为不属于上述类别之一的任何内容。
无论是在ls -F
输出还是其他方面,硬链接都与其他文件完全没有区别。事实上,您可以将每个文件视为到其自身的硬链接。您可以在ls -l
输出中查看到给定文件的链接数。第二个字段是链接数:
-rw-r--r-- 3 root root 92766 Feb 20 11:42 test.txt
Run Code Online (Sandbox Code Playgroud)
这个文件有三个链接。它们都不是“主要”链接,您无法以任何方式分辨哪个是原始链接。如果删除一个,计数会下降,但其他人仍会引用同一个文件。
-F
除了*
do之外的所有指标都映射到模式输出的第一个字段的一个值上ls -l
,但也有其他 值可以出现在那里,特别是b
对于块设备、c
字符设备和其他系统特定的指标.