“ls”和“ls -p”有什么区别?

“ls”和“ls -p”有什么区别?

ls谁能告诉我 Linux 中的和命令有什么区别ls -p

答案1

-p选项/在目录末尾添加了一个,它可以帮助您轻松检测哪个输出是目录,哪个是文件。

类似的选项使用这些字符来表示-p-F

  • /--> 目录
  • @--> 符号链接
  • |--> fifo 文件(命名管道)。

另一方面,ls不做任何这些事情。

当您不使用类似的选项--color或者您的终端不支持彩色输出时,这些选项很有用。


$ ls
block   dm-1    hwrng

很难分辨哪个是目录,哪个是文件,对吧?所以:

$ ls -p
block/   dm-1    hwrng

现在我可以说这block是一个目录。

答案2

ls -p/在文件夹名称后添加一个,ls但是没有。

答案3

来自man ls(其中包含所有 Linux 命令的文档)

ls

   ls - list directory contents

ls -p

   -p, --indicator-style=slash
          append / indicator to directories

答案4

如果你没有注意到的效果-p,你应该检查一下ls别名是什么。

正如其他人所说,ls -p导致目录名称以尾随 结尾/。但是,有时人们会询问标志的作用,-p因为-F它们似乎没有效果。

通常来说,效果是显而易见的:

ek@Io:~/tmp$ ls
directory  regular-file
ek@Io:~/tmp$ ls -p
directory/  regular-file

不过,用户通常会有一个ls添加选项的 shell 别名。如果其中一个选项是-p或另一个选项将尾部斜杠添加到目录名称,那么添加-p您自己不会有任何区别。

在 Ubuntu 中,type ls通常显示。 (此别名由用户的文件中ls is aliased to `ls --color=auto'提供,该文件是在创建用户帐户时复制的。)当用户在交互式 shell 提示符下运行时,它将被替换为。alias ls='ls --color=auto'.bashrc/etc/skellsls --color=auto

如果-p将其传递给 似乎没有效果ls,请尝试运行type lsalias ls。(尽管很少见,但有可能有一个 shell 函数ls,这比弄清楚这里发生了什么type更可靠。)它可能会显示您有一个包含、、或 的别名。aliasls-p--indicator-style=slash-F--classify

有几种方法可以绕过别名扩展:

command ls
\ls
/bin/ls

ls仅当可执行文件为时,第三个命令才是等效的/bin/ls。情况几乎总是如此;只有ls在其他地方添加了第二个可执行文件时,情况才会有所不同。运行type -a ls以查看。

相关内容