如何让ls列出带有尾随正斜杠的目录?


12

我的壳是bash。如何获得ls显示带有尾部正斜杠的目录的输出?当我这样做时lstcsh将提供所需的输出。我如何在bash不使用任何参数的情况下发生这种情况?

例如。

bin/
lib/
src/
file1.txt
file2.txt

7
您的外壳与此处无关... man ls然后向下滚动至-p
don_crissti

-F国旗吗?我从不使用它,所以我不记得了...
杰夫·谢勒

1
按照您的标题加上斜杠,还是按照您的示例加上斜杠(更有意义)?
吉尔斯(Gillles)“所以-别再邪恶了”

@don_crissti参见我对该问题的编辑。
CJ7

@ CJ7- type ls输出什么?也许是别名?
don_crissti

Answers:


12

最简单的解决方案(如@don_crissti在评论中已经给出的)是:

ls -p

您可以通过以下方式获得类似的效果:

ls -F

但这也会增加其他一些指标:

在每个文件名后附加一个字符,指示文件类型。另外,对于可执行的常规文件,请追加*。文件类型指示符/用于目录,@用于符号链接, |用于FIFO,=用于套接字,>用于门,而不适用于常规文件。


当然,您可以使用别名使字符串在命令行上ls执行ls -p

alias ls='ls -p'

那是暂时的,可以用清除unalias ls
可能您tcsh有一个活动别名。

您可以通过在~/.bashrc或中放置命令来执行此操作~/.bash_aliases


最后一点引起了我的注意。我从没见过或听说~/.bash_aliases过。仅~/.bash_profile和/或~.bashrc。这是对的吗?
声音

1
@ tjt263通常将所有别名放在源自bashrc特殊文件中。内容可能会根据您的需要而有所不同

要保持颜色:alias ls='ls --color=auto -p'
mkczyk

2

您可以使用-F,例如

$ /bin/ls -F
-/                                 diesel_folks                 grub                     presidents             user_mailer/
0/                                 dmStaffing/                  HJJJH/                   prime_scenarios   
...
# I'm using /bin/ls to make sure I run my system ls 
# (I actually have it aliased to add options automatically normally)
#
# Just read about your no argument requirement
# So you too could alias it, i.e.

alias ls='ls -F'

# Put it in your `.bashrc` or `.bash_aliases` file

您知道为什么tcsh给了我想要的输出bash吗?
CJ7

1
@ CJ7因为tcsh和bash使用不同的配置文件(具有不同的语法)。您大概已经在中有一个类似的别名.cshrc
吉尔(Gilles)'所以

我尝试.bashrc在自己的主目录中制作文件,但没有成功
CJ7

@ CJ7,您进行更改后是否重新启动了Shell?
Jochem Schulenklopper

0

要么

   ls --classify

要么:

   ls --indicator-style=slash

说明

   -F, --classify
          append indicator (one of */=>@|) to entries

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

其他答案或多或少地涵盖了这一点,但是在Stack Overflow答案中,我更喜欢GNU风格的长选项而不是BSD风格的短选项,因为它们更容易解释和学习/“可记忆” /“可内化”。

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.