ディレクトリとサブディレクトリのパスを含む特定の拡張子を持つすべてのファイルを返します。

ディレクトリとサブディレクトリのパスを含む特定の拡張子を持つすべてのファイルを返します。

MAC OSでターミナルを使用する場合は、ディレクトリとすべてのサブディレクトリのファイル名とパスを返す必要がありますが、ファイルに特定のファイル拡張子(.txtなど)がある場合にのみ適用されます。

これを試しましたが、ファイル拡張子でフィルタリングされません。

find $PWD/* -maxdepth 20

私もこれを試しましたが、私のディレクトリパスを返しませんでした。

ls my-dir  |egrep '\.txt$'

答え1

Macosを使用している場合、シェルはおそらくzshです。

print -rC1 -- $PWD/**/*.txt(N)

print r名前が現在の作業ディレクトリーまたはそれ以下で終わる1 C非表示ファイル(通常、シンボリックリンク、FIFOなどのすべてのタイプ)のフルパスを語彙順にソートします。.txt

制限する隠し修飾子を含めるには、D修飾子((...)上記の内側)を追加します。.定期的なファイルのみ、om年齢別に並べ替え:q引用するファイルパスに特殊文字(存在する場合)...

2つの別々の列にあるこれらのパスのすべてをh確認するには、次の手順を実行します。t

() {print -rC2 -- $@:h $@:t; } $PWD/**/*.txt(N)

私たちは、olumnsの@rgumentsのheadsとaailsを印刷する匿名関数にパスリストを渡します。t2 C

答え2

読むman find。正しい方法は次のとおりです。

find "$PWD" -type f -name '*.txt' -print

または、ファイル名にスペースやその他の「面白い」文字が含まれている場合(標準に従って、およびを除くすべての/文字NUL 0x00が許可されています):

find "$PWD" -type f -name '*.txt' -print0 | \
    xargs -0 -r stat -c "%N\n"

読むman xargs stat

関連情報