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のh
eadsとaailsを印刷する匿名関数にパスリストを渡します。t
2
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
。