lsコマンドを使用せずに、現在のディレクトリまたはディレクトリパスの内容をどのように一覧表示できますか? echoコマンドを使用してこれを実行できますか?
答え1
printf '%s\n' *
シェルコマンドは、現在のディレクトリに隠されていないファイルを1行に1つずつ一覧表示します。隠されていないファイルがない場合、*
これは変更されたシェル(csh、tcsh、fish、zsh、bash -O failureglob)を除いて単独で表示されます。
echo *
-
空白文字で区切られた隠しファイルは、シェル/エコーの実装によっては、最初のファイル名がバックスラッシュ文字で始まる場合、またはファイル名にバックスラッシュ文字が含まれていない限りリストされます。
シェルは*
それをコマンドに渡す前にファイルのリストに展開します。ここでは、head -- *
最初の数行を表示するなど(head
複数のファイルを許可する実装を使用して)すべてのコマンドを使用できますstat -- *
。
隠しファイルを含めたいです。
printf '%s\n' .* *
(シェルによる.
とも含まれます..
)。そしてzsh
:
printf '%s\n' *(D)
ls
ディレクトリの内容を一覧表示できる他のアプリケーション(シェルグロブを除く)は次のとおりですfind
。
find . ! -name . -prune
(隠しファイルを含む、除く.
)..
。
Linuxの場合lsattr
(Linux拡張ファイル属性のリスト):
lsattr
lsattr -a # to include hidden files like with ls
答え2
ディレクトリの内容のリストだけが必要な場合:
find . -maxdepth 1
または他のディレクトリ:
find <dir> -maxdepth 1