ls一切不是符号链接


12

是否ls可以显示否定条件,例如“ 不是符号链接的所有文件”?我在项目目录中经常使用后者,但其他取反也将很有用。

目前,我的研究仅导致为“ like”创建别名:

find . -maxdepth 1 ! -type l | sort # (...)

但是很显然,这种方式我无法获得ls,列格式等的颜色...

我有时在OS X 10.8.2上使用Bash v3,有时在Pangolin上使用Bash v4。

Answers:


14

而不是用管道输送到sort,请使用ls。

find . -maxdepth 1 \! -type l -exec ls -d {} +

find . -maxdepth 1 \! -type l | xargs ls -d

如果使用zsh shell,则可以使用其非便携式glob扩展:

ls -d *(^@)

谢谢4答案!你为什么逃脱!即使没有,它也似乎可以正常工作。有趣的是您如何使用final +而不是final \;,请解释一下?
Robottinosino 2012年

2
@Robottinosino +使它将所有内容发送到一个ls命令,而不是为每个文件单独运行(这样,ls可以进行列和排序)。我逃脱了!因为即使您的外壳似乎很好,它对于某些外壳也是特殊字符。
Random832

知道了 好东西!您是否同意只是简单地否定谓词就有点费力了ls?会有更好的方法吗?
Robottinosino 2012年

1
@Robottinosino使用zsh可以编辑的内容。我不认为bash可以做到。
Random832
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.