それはbashではありません.シンボリックリンクをシンボリックリンクとして扱い、それ自体からプロパティを読み取る人を見つけます.それが指すファイルからプロパティを読み取らない. find(1)の内容を参照してください。
シンボリック リンクをたどらないでください。これがデフォルトの動作です。find がファイルの情報を検査または出力するときに、ファイルがシンボリック リンクである場合、使用される情報はシンボリック リンク自体のプロパティから取得されます。
それをディレクトリとして扱うには、-L
オプションを使用する必要があります。
-L オプションが有効な場合、-type 述語は、(シンボリック リンクが壊れていない限り) リンク自体ではなく、シンボリック リンクが指すファイルのタイプに対して常に一致します。-L を使用すると、-lname および -ilname 述語は常に false を返します。
私の推測では、末尾のスラッシュを渡すと、/
bash はそれを解決しようとし、それをディレクトリとして認識します。ディレクトリ ツリーに再帰的なシンボリック リンクがないことが確実な場合はfind
、-L
オプションで呼び出すことができます。したがって、次のコマンドが機能するはずです。
find -L /home/zzz -type f