基本上我想做以下事情:
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'
我想知道如何只显示隐藏文件或只隐藏目录?
我有以下解决方案,但它不会以彩色显示输出:(
ls -ltra | grep '\->'
答案 0 :(得分:57)
查找目录中的所有符号链接:
ls -l `find /usr/bin -maxdepth 1 -type l -print`
隐藏文件列表:
ls -ald .*
答案 1 :(得分:13)
ls -l | grep lrw
仅显示符号链接(文件和目录)。但不知道如何让它们变得丰富多彩。
ls -lad .*
仅显示隐藏文件/目录
ls -l | grep drw
仅显示目录。
答案 2 :(得分:12)
仅限“隐藏”文件夹 - 点文件夹,请尝试:
ls -l .**
是的,这两个星号是必要的,否则你也会得到。和..在结果中。
对于符号链接,请尝试使用符号链接程序:
symlinks -v .
(显示当前目录下的所有符号链接)
答案 3 :(得分:9)
显示符号链接及其链接的内容:
find -P . -type l -exec echo -n "{} -> " \; -exec readlink {} \;
限制为JUST THIS
find -P . -maxdepth 1 -type l -exec echo -n "{} -> " \; -exec readlink {} \;
示例输出(在ln -s / usr / bin moo之后):
./moo -> /usr/bin
答案 4 :(得分:6)
你几乎在那里用你的grep解决方案;让我们专注于让你再次成为COLOR。
试试这个:
ls --color=always -ltra | grep '->'
答案 5 :(得分:5)
对@ChristopheD给出的答案做了一点改进(由于我没有足够的声誉,因此对已接受的答案进行了评论)
我使用别名
findsymlinks <path> <depth>
别名是
alias findsymlinks "find \!:1 -maxdepth \!:2 -type l -print | xargs ls -l --color=auto"
答案 6 :(得分:3)
尝试文件类型标记并删除附加的@
ls -F /home/usr/foo | grep "@" | sed 's/@//'
答案 7 :(得分:2)
For(t)csh :
ls --color=always -ltra | grep '\->'
(这只是pbr's answer,但连字符已转义。)
Mac OSX
在OSX上,ls
的工作方式不同,因此请将其添加到~/.cshrc
文件中:
setenv CLICOLOR_FORCE 1 # (equivalent of Linux --color=always)
然后致电:
ls -G -ltra | grep '\->' # (-G is equivalent of ls --color)
答案 8 :(得分:2)
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
这对我有用,但是如果你要搜索/ filesystem root你需要省略proc目录
答案 9 :(得分:1)
对于bash:
这提供了一个很好的输出。
sl=`find -L /path/to/target -xtype l`; for links in $sl; do ls --color=always -ltra $links; done | sed 's/^/ /'
答案 10 :(得分:0)
用法: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