该命令ls -d */
仅列出目录如下
Desktop/ Downloads/ Pictures/ snap/ Videos/
Documents/ Music/ Public/ Templates/
该命令ll -d */
也将结果限制在目录中,但是会附加一个额外的正斜杠。
(ll
是 的别名ls -alF
)
drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents//
drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music//
drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public//
drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos//
如果ls -ald */
运行该命令,则它不包含额外的正斜杠。
drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents/
drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music/
drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public/
drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos/
相反ls -alFd */
,返回相同的结果ll -d */
根据man ls
国旗-F
--classify append indicator (one of */=>@|) to entries
。
我假设由于 , 设置的附加指示符-F
,ll -d */
附加了正斜杠,尽管不清楚是否需要或包含附加后缀的价值,即/
如果已经存在,为什么需要添加另一个后缀?
其次,有没有办法只列出目录而ll -d */
没有额外的/
?
创建的文件列表
*/
由 shell 生成。它是一个/
已经附加的目录列表:这是在一个实用程序(shell)中生成的,并提供给另一个实用程序 (
ls
) 以供其进一步解析和处理。那就是得到的列表
ls
。这就是为什么您需要-d
选择重复列表而不进入每个目录的原因。如果你给 ls 添加一个 '-p' 选项,它会在每个目录后面附加一个附加值,
/
以表明它是一个目录:如果 ls 的颜色选项处于活动状态,您应该看到一种颜色的路径名和
/
另一种颜色。-F
ls 选项与该选项类似,但-p
它也可以使用其他字符来表示其他类型的文件(不仅是目录),其中每个字符来自此列表:*/=>@|
有一种方法可以仅使用 ll -d */ 列出目录,而无需额外的 /。
如果你在 .bashrc 中加入以下函数,它会在你执行“unalias ll”或从 .bashrc 中删除“alias ll”后生效