跑步ls --help
对于澄清什么并没有多大帮助ls -F
。
-F, --classify 将指示符(*/=>@| 之一)附加到条目。
因此,我提到这线程来找出答案,其答案指出
-F 在每个目录路径名后立即显示斜杠 ('/')、在每个可执行文件后显示星号 ('*')、在每个符号链接后显示 at 符号 ('@')、在每个空白后显示百分号 ('%')、在每个套接字后显示等号 ('='),并在每个 FIFO 后显示竖线 ('|')。
假设它是正确的,我不明白为什么我得到的输出ls -F
是:
'List 1.pdf'* 'List 2.pdf'* 'List 3.pdf'* 'List 4.pdf' 'List 5.pdf'* 'List 6.pdf'
既然它们都是 pdf 文件,为什么有些文件被标记为可执行文件?难道不应该都以同样的方式标记吗?
答案1
既然它们都是 pdf 文件,为什么有些文件被标记为可执行文件?难道不应该都以同样的方式标记吗?
具有‘可执行’标记不是由于它们是 PDF 文件而引起的,也不依赖于它们是 PDF 文件!
反而,ls如果文件的权限为任何组设置 +x 位。也就是说,如果您ls -l
在相同的文件上运行,您将看到rwxr-xr-x
而不是rw-r--r--
。您可以使用 更改此设置chmod
。
然而,这是将 PDF 文件标记为“可执行”是完全没有意义的,因为它实际上没有任何操作系统可执行代码(如果您尝试实际执行任何这些文件,您会收到某种错误消息)。
它们拥有 +x 权限位的最可能原因是意外:要么是因为您从 Windows 磁盘复制了它们(因为 Windows 默认在所有文件上设置 +x),要么是因为从根本不存储文件权限的其他类型的存储中复制了它们(例如 FAT32 USB 记忆棒)。
(FAT32 磁盘是否会在 Linux 上显示具有 +x 或 -x 的文件取决于挂载选项,例如“fmask=0133”。不幸的是,fmask=0 是默认值,导致 +x 无用。)