
ls が現在のディレクトリの内容を一覧表示する場合、cd を使用せずに、現在のディレクトリ以外の内容を一覧表示する同様のコマンドはありますか?
答え1
リストしたいディレクトリのパスを入力するだけでls
、リストが表示されます。ホーム ディレクトリにいるが、リストを表示したいとします。/etc
実行するls /etc
と、リストが表示されます。
答え2
ls
これを実行します。
の構文は次のls
とおりです。
ls flags file-or-directory-names
私が呼んでいるのはfile-or-directory-names
を使用すると、現在のディレクトリ内のファイルを一覧表示して、特定のファイルだけを一覧表示できます。たとえば、 は、とls -l foo bar
に関する情報のみを一覧表示します(フラグに指定したとおり、長い形式で)。 は、名前が で始まり、 で終わるすべてのファイル (存在する場合) を一覧表示します。foo
bar
-l
ls baz*go
baz
go
しかし、ディレクトリ名から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 はディレクトリの内容を一覧表示します...
これで説明がつきます。