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

veh*_*zzz 35 linux shell csh tcsh

基本上我想做以下事情:

ls -l[+someflags]
Run Code Online (Sandbox Code Playgroud)

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

所以输出看起来

-rw-r--r--  1 username grp   size date-time    filename -> somedir
-rw-r--r--  1 username grp   size date-time    filename2 -> somsdfsdf
Run Code Online (Sandbox Code Playgroud)

等等

例如,

仅显示我有别名的目录:

alias  lsd  'ls -l | grep ^d'
Run Code Online (Sandbox Code Playgroud)

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

我有以下解决方案,但它不显示颜色的输出:(

ls -ltra | grep '\->'
Run Code Online (Sandbox Code Playgroud)

Chr*_*heD 57

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

ls -l `find /usr/bin -maxdepth 1 -type l -print`
Run Code Online (Sandbox Code Playgroud)

对于隐藏文件的列表:

ls -ald .*
Run Code Online (Sandbox Code Playgroud)

  • 有一点问题.如果/ usr/bin下没有符号链接,则comamnd等于ls -l,表示显示没有过滤器的当前目录. (3认同)

jma*_*g2k 13

对于"隐藏"文件夹 - 点文件夹,请尝试:

ls -l .**
Run Code Online (Sandbox Code Playgroud)

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

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

symlinks -v .
Run Code Online (Sandbox Code Playgroud)

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


小智 13

ls -l | grep lrw 
Run Code Online (Sandbox Code Playgroud)

仅显示符号链接(文件和目录).但不知道如何让它们变得丰富多彩.

ls -lad .* 
Run Code Online (Sandbox Code Playgroud)

仅显示隐藏的文件/目录

ls -l | grep drw
Run Code Online (Sandbox Code Playgroud)

仅显示目录.


小智 9

要显示符号链接及其链接的内容:

find -P . -type l -exec echo -n "{} -> " \; -exec readlink {} \;
Run Code Online (Sandbox Code Playgroud)

限制为刚刚这个DIR

find -P .  -maxdepth 1 -type l -exec echo -n "{} -> " \; -exec readlink {} \;
Run Code Online (Sandbox Code Playgroud)

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

./moo -> /usr/bin
Run Code Online (Sandbox Code Playgroud)


pbr*_*pbr 7

你几乎在那里用你的grep解决方案; 让我们专注于再次让你变色.

试试这个:

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

  • 聪明的。我需要在 grep 语句中转义破折号: grep '\->' (2认同)

Pra*_*Rai 5

对@ChristopheD给出的接受答案略微改进(由于我没有足够的声誉,因此对已接受的答案进行了评论)

我使用别名

findsymlinks <path> <depth> 
Run Code Online (Sandbox Code Playgroud)

别名在哪里

alias findsymlinks "find \!:1 -maxdepth \!:2 -type l -print | xargs ls -l --color=auto" 
Run Code Online (Sandbox Code Playgroud)