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/skel
ls
ls --color=auto
如果-p
将其传递给 似乎没有效果ls
,请尝试运行type ls
或alias ls
。(尽管很少见,但有可能有一个 shell 函数ls
,这比弄清楚这里发生了什么type
更可靠。)它可能会显示您有一个包含、、或 的别名。alias
ls
-p
--indicator-style=slash
-F
--classify
有几种方法可以绕过别名扩展:
command ls
\ls
/bin/ls
ls
仅当可执行文件为时,第三个命令才是等效的/bin/ls
。情况几乎总是如此;只有ls
在其他地方添加了第二个可执行文件时,情况才会有所不同。运行type -a ls
以查看。