我怎样才能去掉 ls 输出中的 ./ 和 ../
How can I get rid of the ./ and ../ in the ls output
我想删除 .. 和 . ls
输出中的条目。然而,运行
ls . | sed '/^\.\./d;/^\.\//d'
对我不起作用(./
仍然在这里),我不明白为什么。
ls
有 -A
选项正是为了这个目的:
ls -A
来自man ls
:
-A, --almost-all
do not list implied . and ..
默认情况下 ls
不会首先打印这些条目,也不会打印名称以 .
开头的任何其他条目。它也不会在目录名称后打印尾部斜杠。你的普通 ls
命令正在做这些事情表明你在你的环境中有一个别名(很可能)或者可能是一个 shell 函数。您可以使用命令 alias -p
.
列出 shell 环境中的当前别名
无论哪种方式,您都可以使用绝对路径避开别名/函数而不删除它:/bin/ls
。在别名的情况下,至少,您可以指定 -A
选项来抑制 .
和 ..
,但如果支持该(非标准)选项的含义有 GNU 和 BSD ls
然后它不会抑制其他点文件(这可能正是你想要的)。
我想删除 .. 和 . ls
输出中的条目。然而,运行
ls . | sed '/^\.\./d;/^\.\//d'
对我不起作用(./
仍然在这里),我不明白为什么。
ls
有 -A
选项正是为了这个目的:
ls -A
来自man ls
:
-A, --almost-all
do not list implied . and ..
默认情况下 ls
不会首先打印这些条目,也不会打印名称以 .
开头的任何其他条目。它也不会在目录名称后打印尾部斜杠。你的普通 ls
命令正在做这些事情表明你在你的环境中有一个别名(很可能)或者可能是一个 shell 函数。您可以使用命令 alias -p
.
无论哪种方式,您都可以使用绝对路径避开别名/函数而不删除它:/bin/ls
。在别名的情况下,至少,您可以指定 -A
选项来抑制 .
和 ..
,但如果支持该(非标准)选项的含义有 GNU 和 BSD ls
然后它不会抑制其他点文件(这可能正是你想要的)。