基本的に私は次のことをしたいです:
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 '\->'
ディレクトリ内のすべてのシンボリックリンクを検索します。
ls -l `find /usr/bin -maxdepth 1 -type l -print`
隠しファイルのリスト:
ls -ald .*
ls -l | grep lrw
シンボリックリンク(ファイルとディレクトリ)のみを表示します。しかし、それらをどのようにカラフルにするかわかりません。
ls -lad .*
非表示のファイル/ディレクトリのみを表示します
ls -l | grep drw
ディレクトリのみを表示します。
「非表示」フォルダのみ-ドットフォルダの場合:
ls -l .**
はい、2つのアスタリスクが必要です。それ以外の場合はも表示されます。と..結果で。
シンボリックリンクについては、symlinksプログラムを試してください。
symlinks -v .
(現在のディレクトリにあるすべてのシンボリックリンクを表示します)
シンボリックリンクとそのリンク先を表示するには:
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ソリューションでほとんどそこにいました。もう一度あなたの色を手に入れることに集中しましょう。
これを試して:
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/@//'
(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)
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ディレクトリを省略する必要があります
bashの場合:
これは素晴らしい出力を提供します。
sl = `find -L/path/to/target -xtype l`; $ sl内のリンク。 do 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