基本上我想要做以下几点:
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