我想使用一个ls
别名(如l.
)来输出一个彩色列表,该列表仅由隐藏文件和目录组成,无论它们是否以点开头。有什么建议?
预期结果示例...
## Listing all contents of $PWD
$ ls -AF
file directory/
.dot-file .dot-directory/
hidden-file hidden-directory/
## Listing all hidden contents of $PWD, using alias `l.`
$ l.
.dot-file .dot-directory/
hidden-file hidden-directory/
研究...
我已经看到类似问题的答案。这些答案很棒,但是并不能完全满足我的要求,因为:
chflags hidden file
,那么file
将被排除在l.
输出之外grep
样式而不是ls
样式显示隐藏的点文件
-l
的有## Current `ls` alias
alias ls="ls -h ${COLORFLAG}"
我同时使用bash
&zsh
。
这将使用该find
命令来检索点文件和设置了“隐藏”标志的文件。
匹配的文件作为参数列表馈入ls
via sed
(以除去“。”结果以及前导“ ./”前缀)和xargs
。这样就可以指定其他ls
参数(例如-l
)。
alias l.="find . \( -flags +hidden -or -name '.*' \) -maxdepth 1 | sed 's/^\.\/*//' | xargs ls -d"
整个构造旨在仅列出当前目录(的-maxdepth 1
参数find
);如果不希望这样做,则需要引入条件检查-R
选项,并相应地抑制该maxdepth
选项find
。
例子:
$ ls -alO
total 8
drwxr-xr-x 9 guido staff - 306 Apr 13 22:43 .
drwxr-xr-x+ 6 guido staff - 204 Apr 13 19:00 ..
drwxr-xr-x 2 guido staff - 68 Apr 13 22:43 .hiddendir
-rw-r--r-- 1 guido staff - 0 Apr 13 21:48 .xx
-rw-r--r-- 1 guido staff - 0 Apr 13 21:17 file
-rw-r--r-- 1 guido staff - 18 Apr 13 21:03 file.b
drwxr-xr-x@ 2 guido staff hidden 68 Apr 13 22:43 hidden2
-rw-r--r--@ 1 guido staff hidden 0 Apr 13 22:35 hide
drwxr-xr-x 2 guido staff - 68 Apr 13 21:51 tst
$ l.
.hiddendir .xx hidden2 hide
$ l. -alO
drwxr-xr-x 2 guido staff - 68 Apr 13 22:43 .hiddendir
-rw-r--r-- 1 guido staff - 0 Apr 13 21:48 .xx
drwxr-xr-x@ 2 guido staff hidden 68 Apr 13 22:43 hidden2
-rw-r--r--@ 1 guido staff hidden 0 Apr 13 22:35 hide
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句