ls -l和ll之间的区别?


59

我对整体编程还是比较陌生,一些教程告诉我使用它ls -l来查看目录中的文件,而其他则一直在说ll。我知道这ls是一个简短的列表,但是其他两个之间有区别吗?


8
您可能想看看which ll。您可能会发现这ll实际上是的别名ls -l
HalosGhost

那么,ls我在shell中输入的任何其他命令有什么区别?如果输入,which ls我得到alias ls='ls --color=auto' /bin/ls,但是如果输入(例如),which cd我得到/usr/bin/which: no cd in (........)。编辑:我再次尝试过,which mkdir得到了/bin/mkdir。这些命令中的一些存储在(?)中/usr/bin而某些显然不是的区别在哪里?
2014年

这是您发行版default的影响$PATHls通常是别名,因此您的shell报告别名(优先于二进制文件)和二进制文件的实际位置(在您的情况下为/bin/ls)。如果which找不到cd,则出现某些错误。
HalosGhost

2
cd是shell内置关键字,而不是在文件系统中找到的程序。使用type cdtype ls了解我的意思。有些命令被shell内建函数简单地覆盖:echo存在于中/bin/echo,但bash实际上在大多数现代shell中,echo都调用了内置函数(通常具有扩展功能)。type实际上告诉您它是哪一个。
Orion 2015年

Answers:


88

在许多系统上,ll是的别名ls -l

$ type ll
ll is aliased to `ls -l'

他们是一样的。


3
ll的别名为`ls -ltr'-我使用的是红色帽子6
rdp,

3
在Ubuntu 14.04 LL的别名为'LS -alF'

3
同样ls -alF在Ubuntu 12.04、16.04中,可能还有更多。
保罗

3
在macOS上,Sierra ll的别名为ls -lh
Zorgatone

13

如前所述,ll通常被定义为的别名ls -l。实际上,ls通常是别名本身:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

实际命令是ls在中找到的/usr/binll这样做是为了方便,但是您不能依赖在所有* nix系统上都定义了它,因此最好知道它的实际作用。


好答案。我不禁要补充一点,这就是为什么依赖ls自动化(尤其是临时的单层)通常是个坏主意的原因之一。它具有更改其输出的多种选项以及指定它们的多种方法。由于不同的发行版选择了不同的默认值,因此容易引起头痛。
ctt

ls除了以外,我还没有看到任何流行的别名别名ls --color=auto。就是那个或者没有别名。
2014年

4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'

1
还有12.04和16.04,但这就是我现在可以测试的全部。
保罗

3

在大多数情况下,ll在shell脚本中不起作用。


1
发生的情况是,通常这样的命令ll实际上是别名,在运行脚本时未定义。
vonbrand 2014年

3
某些人在.profile中具有别名,并且该别名在交互式shell中起作用。调试/测试新脚本后,该脚本在crontab中突然失败。Cron不读取.profile。
Walter

1
这不是问题的答案,而应该是评论。据我所知,shell脚本不赞成使用别名。
cornflakes24

我说“最”,但它不会对我的,我使用ls -l
travelingbones

1

ll是的别名ls -l

该选项-l告诉命令使用长列表格式。它返回几列,ls使用简单命令时未显示。这些列包括:

  • 权限

  • 硬链接数

  • 档案拥有者

  • 文件组

  • 文件大小

  • 修改

  • 时间

  • 文档名称


0

ll实际上是别名“ ls -l”。如果您运行ll,它将在shell中显示文件,然后按Enter键查看下一个文件(更多..选项)。如果运行ls -l,则所有文件将一次显示。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.