現在のディレクトリ内のファイルを一覧表示せずにディレクトリ内のファイルを一覧表示する

現在のディレクトリ内のファイルを一覧表示せずにディレクトリ内のファイルを一覧表示する

*.txt私のディレクトリにファイルがあるとしましょうtxtpath=/path/to/txt/

*.txt.$txtpath$txtpathls *.txt $txtpath

*.txt$txtpath次のコマンドを使用してファイルを一覧表示しました。find $txtpath -name '*.txt' | sed 's/\// /g' | grep -o '[^ ]*$'

しかし、よりエレガントな解決策がありますか?

答え1

パターンとともにフルパスを指定します。

ls -d -- "${txtpath}"/*.txt

事実にもかかわらずチェックリストこれはシェルグロービングによって行われ、ls最終的にシェルから受け取ったパラメータのみが印刷されます。printfここでも使用できます。

printf '%s\n' "${txtpath}"/*.txt

txtディレクトリに(一致しないグローバルコマンドを抑制しないシェルで)隠しファイルがない限り、同じ結果を提供します。

関連情報