38

基本的に私は次のことをしたいです:

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 '\->'
4

11 に答える 11

63

ディレクトリ内のすべてのシンボリックリンクを検索します。

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

隠しファイルのリストについて:

ls -ald .*
于 2009-09-11T18:06:38.737 に答える
13

「隠し」フォルダー (ドット フォルダー) のみの場合は、次を試してください。

ls -l .**

はい、2 つのアスタリスクが必要です。そして..結果に。

symlinks については、symlinks プログラムを試してください:

symlinks -v .

(現在のディレクトリの下にあるすべてのシンボリックリンクを表示します)

于 2009-09-11T18:27:07.893 に答える
12
ls -l | grep lrw 

シンボリックリンク (ファイルとディレクトリ) のみを表示します。ただし、それらをカラフルにする方法はわかりません。

ls -lad .* 

隠しファイル/ディレクトリのみを表示します

ls -l | grep drw

ディレクトリのみを表示します。

于 2014-07-17T17:11:27.900 に答える
6

あなたはgrepソリューションでほとんどそこにいました。COLOR を取り戻すことに集中しましょう。

これを試して:

ls --color=always -ltra | grep '->'
于 2009-09-25T21:58:39.193 に答える
2

ファイルタイプフラグを試して、追加の@を取り除きます

ls -F /home/usr/foo | grep "@" | sed 's/@//'
于 2012-03-13T21:08:41.700 に答える
1

(t)csh の場合:

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

(これは単にpbr の回答ですが、ハイフンがエスケープされています。)

MacOSX

OSX ではls動作が異なるため、これを~/.cshrcファイルに追加します。

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

そして、次のように呼び出します。

ls -G -ltra | grep '\->'  # (-G is equivalent of ls --color)
于 2013-12-14T22:40:36.833 に答える
0
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ディレクトリを省略する必要があります

于 2014-02-10T07:53:38.457 に答える
0

bash の場合:
これにより、適切な出力が得られます。

sl=`find -L /path/to/target -xtype l`; $sl のリンクの場合。do ls --color=always -ltra $links; 完了 | sed's/^//'
于 2014-01-30T20:09:18.703 に答える
-1

使用法: 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
于 2014-12-29T01:48:00.367 に答える