Display only files and folders that are symbolic links in tcsh or bash

51,190

Solution 1

Find all the symbolic links in a directory:

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

For the listing of hidden files:

ls -ald .*

Solution 2

For only "hidden" folders - dot folders, try:

ls -l .**

Yes, the two asterisks are necessary, otherwise you'll also get . and .. in the results.

For symlinks, well, try the symlinks program:

symlinks -v .

(shows all symlinks under current directory)

Solution 3

ls -l | grep lrw 

shows only symlinks (files and directories). Not sure how to get them colorful, though.

ls -lad .* 

shows only hidden files/directories

ls -l | grep drw

shows directories only.

Solution 4

To display JUST the symlinks and what they link to:

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

To limit to JUST THIS DIR

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

Example output (after ln -s /usr/bin moo):

./moo -> /usr/bin

Solution 5

You were almost there with your grep solution; let's focus on getting you COLOR again.

Try this:

ls --color=always -ltra | grep '->'
Share:
51,190
vehomzzz
Author by

vehomzzz

He adapts a lazy approach to a complex learning. His eclectic personality coupled with eccentric character caused much harm to masses, and to himself.

Updated on January 21, 2020

Comments

  • vehomzzz
    vehomzzz over 4 years

    Basically I want do the following:

    ls -l[+someflags]
    

    (or by some other means) that will only display files that are symbolic links

    so the output would look

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

    etc.

    For example,

    to show only directories I have an alias:

    alias  lsd  'ls -l | grep ^d'
    

    I wonder how to display only hidden files or only hidden directories?

    I have the following solution, however it doesn't display the output in color :(

    ls -ltra | grep '\->'