仅显示tcsh或bash中的符号链接的文件和文件夹

基本上我想要做以下几点:

ls -l[+someflags] 

(或通过其他方式)只会显示符号链接的文件

所以输出看起来

 -rw-r--r-- 1 username grp size date-time filename -> somedir -rw-r--r-- 1 username grp size date-time filename2 -> somsdfsdf 

等等

例如,

只显示我有一个别名的目录:

 alias lsd 'ls -l | grep ^d' 

我不知道如何只显示隐藏的文件或只隐藏的目录?

我有以下解决scheme,但它不显示颜色:(

 ls -ltra | grep '\->' 

查找目录中的所有符号链接:

 ls -l `find /usr/bin -maxdepth 1 -type l -print` 

对于隐藏文件的列表:

 ls -ald .* 

只有“隐藏”文件夹 – 点文件夹,请尝试:

 ls -l .** 

是的,这两个星号是必要的,否则你也会得到。 并在结果中。

对于符号链接,请尝试符号链接程序:

 symlinks -v . 

(显示当前目录下的所有符号链接)

 ls -l | grep lrw 

只显示符号链接(文件和目录)。 不知道如何让他们丰富多彩,但。

 ls -lad .* 

只显示隐藏的文件/目录

 ls -l | grep drw 

仅显示目录。

要显示JUST的符号链接以及它们链接到的内容:

 find -P . -type l -exec echo -n "{} -> " \; -exec readlink {} \; 

限制到这个目录

 find -P . -maxdepth 1 -type l -exec echo -n "{} -> " \; -exec readlink {} \; 

输出示例(在ln -s / usr / bin moo之后):

 ./moo -> /usr/bin 

你几乎在那里用你的grep解决方案; 让我们专注于让你再次成为COLOR。

尝试这个:

 ls --color = always -ltra |  grep' - >'

对@ChristopheD给出的接受答案稍作改进(由于我没有足够的声望,所以对接受的答案进行了评论)

我使用别名

 findsymlinks <path> <depth> 

别名在哪里

 alias findsymlinks "find \!:1 -maxdepth \!:2 -type l -print | xargs ls -l --color=auto" 

尝试文件类型标志并摆脱追加@

 ls -F /home/usr/foo | grep "@" | sed 's/@//' 
 echo > linklist.found && $(for i in `find /path/to/dir/ -type l`; do echo `ls -d --color=always $i` `echo " -> "` $(ls -d --color=always `readlink -f $i`) >> linklist.found; echo >> linklist.found; done;) && cat linklist.found | more 

这对我很好,但是如果你要搜索文件系统根目录,你需要省略proc目录

对于(t)csh

 ls --color=always -ltra | grep '\->' 

(这只是pbr的答案,但连字符已经逃脱了。)

Mac OSX

在OSX上, ls工作方式不同,所以将其添加到~/.cshrc文件中:

 setenv CLICOLOR_FORCE 1 # (equivalent of Linux --color=always) 

然后打电话给:

 ls -G -ltra | grep '\->' # (-G is equivalent of ls --color) 

对于bash:
这提供了一个不错的输出。

 sl =`find -L / path / to / target -xtype l`; 在$ sl链接; 做ls --color = always -ltra $ links; 完成|  sed's / ^ / /'

用法:foo $ path

如果没有指定,则使用当前路径。

 #!/bin/bash case "$1" in -r) find $2 -type l -print | while IFS= read line ; do ls -l --color=always "$line"; done ;; --help) echo 'Usage: foo [-r] [$PATH]' echo echo '-r Recursive' ;; *) ls --color=always -ltra $1 | grep '\->' esac