探す。 * -exec ll {} \ -> 4つではなくたった1つの結果

探す。 * -exec ll {} \ -> 4つではなくたった1つの結果

findコマンドを使用してディレクトリ内のすべてのファイルを検索したいと思います。

find . * -exec ll {} \;

結果には、ファイルごとに4つの(!)結果が表示されます。

  • file123
  • ./test/file123
  • file123
  • test/file123

2番目の結果のみを表示するには、find-out-of-the-box-commandを使用できますか./test/file123(したがってそのようなものを使用しません| grep '^\./')?

私は最新バージョンのHP / UXを使用しています。

ベストアンサー1

find . * -exec ll {} \;

サブディレクトリを含む.現在のディレクトリにある隠しファイル(シェルによって拡張された)のリストと一緒に渡されます(これらのファイルのいずれかが、で始まる、または名前またはファイルがある場合... )エラーが報告されます)。*test-!()find

したがって、findファイルを再帰的に検索するように指示します。したがって、ファイルは2回、2回見つかります。.testfindtesttest/file123

llls -lこれは、ファイルの詳細またはディレクトリタイプのファイルを一覧表示し、そのディレクトリ内のすべてのファイルの詳細を一覧表示するツールであるスクリプトだと思います(-dオプションを渡さない限り)。

soは引数としてll呼び出されます。この場合、ifはその内容にファイルの詳細(含まれている)を一覧表示します。./testtesttest/file

./test/file123とで呼び出されますtest/file123

希望する場所は次のとおりです。

find . -exec ls -ld {} +

(使用は、+複数のファイルがより効率的な引数として渡され、lsファイルのリストもlsソートできることを意味します。)

ビットリストで表される述語をfindサポートすることもできます。-lsls -lsid

find . -ls

おすすめ記事