他の(現在のディレクトリではない)ディレクトリ内のファイルを一覧表示するにはどうすればいいですか?

他の(現在のディレクトリではない)ディレクトリ内のファイルを一覧表示するにはどうすればいいですか?

ls が現在のディレクトリの内容を一覧表示する場合、cd を使用せずに、現在のディレクトリ以外の内容を一覧表示する同様のコマンドはありますか?

答え1

リストしたいディレクトリのパスを入力するだけでls、リストが表示されます。ホーム ディレクトリにいるが、リストを表示したいとします。/etc実行するls /etcと、リストが表示されます。

答え2

lsこれを実行します。

の構文は次のlsとおりです。

 ls flags file-or-directory-names

私が呼んでいるのはfile-or-directory-namesを使用すると、現在のディレクトリ内のファイルを一覧表示して、特定のファイルだけを一覧表示できます。たとえば、 は、とls -l foo barに関する情報のみを一覧表示します(フラグに指定したとおり、長い形式で)。 は、名前が で始まり、 で終わるすべてのファイル (存在する場合) を一覧表示します。foobar-lls baz*gobazgo

しかし、ディレクトリ名からls、の内容をリストしますそのディレクトリ現在のディレクトリの代わりに。

したがって、 の内容を/var/log一覧表示するには、次のコマンドを実行します。

ls /var/log

もしあなたが相対的ディレクトリのパス(つまり、先頭が「」でないパス/)を指定した場合、現在のディレクトリ内でそのディレクトリを検索します(ファイルを検索するのと同じように)。ただし、コンテンツ必要に応じてディレクトリを変更します。

ちなみに、リストに載せたくない項目がある場合もコンテンツディレクトリではなく、ファイルと同じようにディレクトリをリストします。これを行うには、フラグを渡します-d。たとえば、これは/var/log長い形式で表示されます(コンテンツ、それ/var/log自体は):

ls -ld /var/log

答え3

受け入れられた回答を見ても、私はまだ満足していませんでした。ダニエルはどうやって解決策を知ったのでしょうか? もちろん、私自身もマニュアルページを読みましたが、それでも方法がわかりませんでした。

のマニュアルページには次のようにls書かれています:

説明: FILE (デフォルトでは現在のディレクトリ) に関する情報を一覧表示します...

役に立つ情報はありません。そこで、POSIX プログラマーズ マニュアルを確認しました。

ディレクトリ タイプのファイルを指定する各オペランドに対して、ls はディレクトリ内に含まれるファイルの名前と、要求された関連情報を書き込みます。

この行は、受け入れられたソリューションにおけるコマンドの動作を説明しています。 CANFILEのオペランドはlsディレクトリであり、lsそのディレクトリの内容を一覧表示します。 OP がまさに望んでいたことです。 ただし、Linux での実装は、ここでの仕様とは異なる場合があります。 したがって、正しい方向に進んでいますが、まだそこまでには至っていません。

次に、その一部であるGNUcoreutilsパッケージのマニュアルを検索しました。見つかったものは次のとおりです。ls

オプション以外のコマンドライン引数がディレクトリである場合、デフォルトでは ls はディレクトリの内容を一覧表示します...

これで説明がつきます。

関連情報