InfraAcademy

InfraAcademy Blog

Windowsでlsコマンドは使えない?dirコマンドでファイルの一覧を取得する

| #コマンド #windows
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアのryuです。

Windowsのコマンドプロンプトでlsを実行すると、以下のエラーが表示されることがあります。

'ls' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

Linuxではファイルやディレクトリの一覧を表示するときにlsを使います。しかし、Windowsのコマンドプロンプトにはlsコマンドがありません。

では、Windowsではどのコマンドを使えばよいのでしょうか。

先に結論をお伝えすると、コマンドプロンプトではdir、PowerShellではlsまたはGet-ChildItemを使います。

この記事では、Windowsでlsが使えない原因と、環境ごとの代替方法を初心者向けに解説します。

Windowsでlsコマンドが使えない理由

lsは、LinuxやmacOSなどで使われるコマンドです。

WindowsのコマンドプロンプトはLinuxとは異なるコマンド体系を使っているため、初期状態ではlsを認識できません。

ただし、Windowsであれば必ずlsが使えないわけではありません。

PowerShell、Git Bash、WSLなど、どの画面を開いているかによって使えるコマンドが変わります。

使用している環境 ファイル一覧を表示するコマンド
コマンドプロンプト dir
PowerShell Get-ChildItemdirls
Git Bash ls
WSL ls
Windows Terminal 開いているシェルによって異なる

Windows Terminalはコマンドそのものではなく、コマンドプロンプトやPowerShell、WSLなどを開くためのアプリです。

Windows Terminalを使っていても、タブでコマンドプロンプトを開いていればlsは使えません。

コマンドプロンプトではdirを使う

Windowsのコマンドプロンプトでファイルやディレクトリの一覧を表示するときは、dirコマンドを使います。

dir

実行すると、現在いるフォルダのファイルとサブフォルダが表示されます。

dirコマンドの実行結果

画像では、dirを実行した場所にあるファイルやフォルダの名前、更新日時などが表示されています。

Linuxのlsと目的は似ていますが、オプションの書き方は異なります。

別のフォルダを指定する

確認したいフォルダのパスを指定することもできます。

dir C:\Users

現在のフォルダを確認したい場合は、引数を付けずにcdを実行します。

cd

別のフォルダへ移動する場合は、移動先を指定します。

cd C:\Users\user\Documents

移動後にdirを実行すると、そのフォルダの内容を確認できます。

dirコマンドの主なオプション

dirには、表示方法を変更するオプションがあります。

すべてを覚える必要はありません。まずは、よく使うものから確認してみましょう。

オプション 内容
/b ファイル名とフォルダ名だけを表示する
/a 隠しファイルを含めて表示する
/ad フォルダだけを表示する
/s サブフォルダの中まで表示する
/o 名前や日時などで並べ替える
/w 横に並べて簡潔に表示する

例えば、ファイル名とフォルダ名だけを表示するときは、以下のように実行します。

dir /b

フォルダだけを確認する場合は、以下の通りです。

dir /ad

サブフォルダの中にあるファイルまで検索する場合は、/sを使います。

dir /s

大量の結果が表示されることがあるため、対象のフォルダを確認してから実行してください。

ファイル名を指定して検索する

ワイルドカードの*を使うと、条件に一致するファイルだけを表示できます。

例えば、拡張子が.txtのファイルを表示する場合は、以下のように実行します。

dir *.txt

名前にlogを含むファイルやフォルダを探す場合は、次のように指定します。

dir *log*

ファイルが見つからないときに、フォルダの中を目で探すより便利です。

PowerShellではlsコマンドを使える

WindowsでPowerShellを開いている場合は、lsを実行できます。

ls

ただし、PowerShellのlsはLinuxのlsコマンドそのものではありません。

PowerShellでは、lsGet-ChildItemというコマンドの別名として登録されています。

次の3つは、PowerShellでは基本的に同じ目的で使えます。

Get-ChildItem
dir
ls

どれを使っても、現在の場所にあるファイルやフォルダを取得できます。

隠しファイルも表示する

PowerShellで隠しファイルを含めて表示する場合は、-Forceを使います。

Get-ChildItem -Force

短く書く場合は、lsにも同じオプションを付けられます。

ls -Force

Linuxでは隠しファイルの表示にls -aを使いますが、PowerShellではオプションが異なります。

見た目が同じlsでも、実際に動いているコマンドは別物だと覚えておきましょう。

Windows Terminalでlsが使える場合と使えない場合

Windows Terminalを使っているのに、lsが使えないこともあります。

これは、Windows Terminalの中でコマンドプロンプトを開いているためです。

画面の上部にあるタブや、新しいタブを開くメニューを確認してください。

PowerShellやUbuntuを開いている場合はlsを使えますが、コマンドプロンプトではdirを使います。

コマンドプロンプト → dir
PowerShell          → ls または Get-ChildItem
Ubuntu(WSL)       → ls

使いたいコマンドに合わせて、適切なシェルを開くことが大切です。

WindowsでLinuxのlsを使う方法

Linuxと同じlsコマンドを学びたい場合は、Git BashやWSLを使います。

どちらもWindows上でLinuxに近いコマンド操作ができますが、目的が少し異なります。

Git Bashを使う

Git Bashは、Git for Windowsをインストールすると利用できます。

Gitの操作に必要なコマンドだけでなく、lspwdcpmvなどの基本的なコマンドも実行できます。

ls -la

Gitを使いながら、簡単なLinuxコマンドも利用したい方に向いています。

ただし、Git BashはLinux OSそのものではありません。Linuxサーバーのサービス管理やパッケージ管理を、そのまま練習できるわけではない点に注意してください。

WSLを使う

WSLは、Windows上でUbuntuなどのLinux環境を動かす仕組みです。

管理者権限でPowerShellを開き、以下のコマンドでインストールできます。

wsl --install

インストール後にUbuntuなどのLinuxを起動すると、通常のLinuxコマンドを実行できます。

ls -la
pwd
mkdir test

Linuxの学習や開発環境として使いたい場合は、Git BashよりもWSLの方が本物のLinuxに近い環境です。

詳しい導入手順は、WindowsへWSLでLinuxをインストールする方法で解説しています。

dirとlsの違い

dirlsは、どちらもファイルやフォルダの一覧を表示します。

ただし、使用する環境やオプションが異なります。

比較項目 dir Linuxのls
主な環境 Windowsのコマンドプロンプト Linux・macOS
詳細表示 dirの標準表示 ls -l
隠し項目 dir /a ls -a
名前だけ表示 dir /b ls -1
サブフォルダも表示 dir /s ls -R

似た目的のコマンドでも、オプションをそのまま置き換えることはできません。

Linuxのlsについては、lsコマンドの使い方で詳しく解説しています。

Windowsでlsが使えないときのまとめ

Windowsのコマンドプロンプトでlsが使えないのは、lsがWindows標準のコマンドではないためです。

ファイルやフォルダの一覧を確認したい場合は、開いている環境に合わせてコマンドを使い分けます。

コマンドプロンプト:dir
PowerShell:ls、dir、Get-ChildItem
Git Bash:ls
WSL:ls

私もLinuxを学び始めたころは、コマンドプロンプトとLinuxのターミナルで使えるコマンドの違いに迷いました。

しかし、コマンドを丸暗記するよりも、今どの環境を操作しているのかを確認すると整理しやすくなります。

Windowsでファイル一覧を見たいだけならdir、Linuxの操作を学びたいならWSLやブラウザLinuxを使ってみてください。

Linuxコマンドを実際に練習したい方へ

Windows上にWSLを構築しなくても、ブラウザからLinuxコマンドを試す方法があります。

利用できる環境は、ブラウザで使えるLinux環境を紹介した記事でまとめています。

Linuxを基礎から順番に学びたい方は、Linux入門講座も確認してみてください。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る