【问题标题】:The output of ls with -aF option is not clear带 -aF 选项的 ls 输出不清楚
【发布时间】:2017-02-09 20:58:01
【问题描述】:

当我在任何目录中尝试带有-aF 选项的命令ls 时,无论它是否为空,我总是得到以下结果:

./  ../ 

那么当我将这两个选项与 ls 命令一起使用时,输出是什么意思?

【问题讨论】:

  • 请看:man ls
  • 我知道 -a 用于显示隐藏文件和 -F 用于识别文件类型,但是当我将这两个选项添加在一起时我没有得到它? @赛勒斯
  • 你不明白为什么所有目录中存在的两个目录条目都被标记为目录?
  • ./ 是当前目录,../ 是上一个目录

标签: linux bash command-line ls


【解决方案1】:

当您使用 ls 时,您正在读取目录文件,而不是实际查看目录。每个目录列表都包含当前/当前目录及其父目录的条目,就像您期望在任何目录列表中看到子/子目录的列表一样。

ls 的 -A 选项仅告诉 ls 显示所有文件,其中包括 ./ 和 ../ 的条目,用于当前和父级。请注意,这些点只是 shell (bash) 用来表示这些文件的文件路径的简写。换句话说,“./”的真正含义是说 ~/Desktop 如果您当前在 Desktop 目录中执行 ls。而“../”表示“~/”,它只是代表用户主目录的另一个符号简写,可能类似于 macOS (OS X) 上的 /Users/your_username 或各种 Linux 发行版的 /usr/your_username .请注意,这些路径也可以在末尾附加正斜杠并表示相同的含义(例如,/Users/your_username/ 与 /Users/your_username 相同,因为它们都是对其他目录(目录文件)的引用.

如果您不想查看 ./ 和 ../,但仍想查看(其他)隐藏文件,请为 ls 使用 -a 选项。

使用 -F 选项会导致 ls 根据文件类型显示附加字符到文件类型。这就是为什么显示目录时在末尾附加正斜杠,可执行文件显示为可执行文件*(附加星号),而常规文件没有附加文件(例如,.txt、.png、.dmg)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2022-01-25
    • 2014-10-10
    • 2020-02-03
    相关资源
    最近更新 更多