私はこれがls -l
出力形式を変更するだけでなく、ディレクトリシンボリックリンクの処理方法も変更することがわかりました。
> ls /rmn
biweekly.sh daily.sh logs ...
> ls -l /rmn
lrwxrwxrwx 1 root root 18 Feb 11 2011 /rmn -> /root/maintenance/
/rmn
私はシンボリックリンクに関する情報ではないの内容の詳細なリストを取得したいと思います/rmn
。
私が考えることができる1つの解決策は、次のことを行うシェル関数を作成することです。
cd /rmn
ls -l
cd -
しかし、これは特に邪魔になるので古すぎるようですcd -
。より良い方法はありますか?
(私はCentOS 2.6.9を使用しています)
答え1
lsにオプションがあることを確認してください。
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir
follow each command line symbolic link that points to a directory
これがうまくいかない場合は、次のようにcd -
して混乱を招くことなくマクロを機能させることができます。
(cd /rmn ; ls -l)
サブシェルで実行されます。
答え2
この簡単な質問について考えるのはなぜそれほど複雑なのか理解できません。しかし、たぶん私が間違って理解しているのかもしれません。とにかく、同様の機能が必要な場合は、次のものを使用しました。
ls -lL
これは私の場合に効果がありました。ls
マニュアルページから:
-L, --dereference
when showing file information for a symbolic link,
show information for the file the link references
rather than for the link itself
/media/stick
たとえば、USBスティックのデータにアクセスできるショートカットを作成しました。実際のリンクls -l /media/stick
が表示されます。ls -lL /media/stick
コンテンツUSBスティックに。
-H
-L
の違いと内部の仕組みのより深い研究を経た後浅い考えブログ(楽しむためのいくつかのきれいなシェルスクリプトのヒントもあります!)
これは次のように指摘しています。ニュアンス2つのオプションの間には(オリジナルマニュアルよりも優れています!)
-H
- コマンドラインで明示的に言及されたリンクのみを参照してください。-L
- 逆参照リンクがあってもいいえコマンドラインで言及
(この二つを合わせるとシンプル日常的な作業の場合、通常は出力に違いはありません。 )
また:長い形式(--option
--dereference
)、過度に長いモンスターよりも覚えやすくなります--dereference-command-line-symlink-to-dir
。
答え3
ls -l /rmn/
これをするかどうか
ls -l /rmn/.
ただし、使用時と使用しないときは動作が変わってはいけません-l
。エイリアスはありますかls
?