使い方を見つけるには-Lを使用してください。

使い方を見つけるには-Lを使用してください。

私は持っています

link -> file

はい

find -L . -name 'link'

そして得る

./link

なぜそんなことですか?

その人は次の事実を見つけました。

-L:シンボリックリンクに従います。 findがファイルに関する情報を確認または印刷するときに使用される情報は、リンク自体ではなくリンクが指すファイルの属性から取得する必要があります(壊れたシンボリックリンクであるか、findがリンクが指しているファイルを確認できない場合を除く)。 )。

ベストアンサー1

一般的な規則は、コマンドがリンク(つまり、ディレクトリエントリ、inodeへのポインタ)で機能する場合、そのコマンドはシンボリックリンクをリンクが指すオブジェクトではなくそれ自体として扱うことです。それ以外の場合、コマンドはシンボリックリンクが指す宛先で機能します。したがって、cpデフォルトではシンボリックリンクに従い、リンクが指すファイルの内容がコピーされます。ただしcp、を指定して処理するディレクトリエントリを要求すると、-Rシンボリックリンクのフォローは停止します。 mv常にディレクトリエントリと連携して動作するため、シンボリックリンクをたどることはありません。

このfindコマンドの一般的なアクティビティは、ディレクトリエントリに対して機能することであるため、デフォルトではシンボリックリンクに従いません。すべての属性のシンボリックリンクを追跡する-L理由を追加するfindとは別にディレクトリ検索をするときに欠かせないものの一つがまさに名前だ。の目的の1つは、ディレクトリエントリで動作し、同じコマンドへの入力を提供するfind -nameことです。生成された名前がルートと見なされるディレクトリツリーの外側を指すと、不快で驚くべき結果が発生します。mvrmfind -L dir -namedir

おすすめ記事