如何摆脱ls输出中的./和../

时间:2016-10-06 20:36:56

标签: bash terminal sh ls

我想删除..和。输入ls输出。然而,运行

ls . | sed '/^\.\./d;/^\.\//d'

对我不起作用(./仍然在这里),我无法弄清楚原因。

2 个答案:

答案 0 :(得分:3)

完全出于此目的,

ls-A选项:

ls -A

来自man ls

-A, --almost-all
              do not list implied . and ..

答案 1 :(得分:1)

默认情况下,ls不会首先打印这些条目,也不会打印名称以.开头的任何其他条目。它也不会在目录名后打印一个尾部斜杠。您的普通ls命令正在执行这些操作表明您在环境中具有别名(很可能)或可能是该函数的shell函数。您可以使用命令alias -p列出shell环境中的当前别名。

无论哪种方式,您都可以使用绝对路径来回避别名/功能而不删除它:/bin/ls。至少在别名的情况下,您可以指定-A选项来禁止...,但如果支持那个(非标准)选项,则意味着它对于GNU和BSD ls,它不会抑制其他dotfiles(这可能正是你想要的)。