こんにちは、フルスタックエンジニアの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-ChildItem、dir、ls |
| Git Bash | ls |
| WSL | ls |
| Windows Terminal | 開いているシェルによって異なる |
Windows Terminalはコマンドそのものではなく、コマンドプロンプトやPowerShell、WSLなどを開くためのアプリです。
Windows Terminalを使っていても、タブでコマンドプロンプトを開いていればlsは使えません。
コマンドプロンプトではdirを使う¶
Windowsのコマンドプロンプトでファイルやディレクトリの一覧を表示するときは、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では、lsがGet-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の操作に必要なコマンドだけでなく、ls、pwd、cp、mvなどの基本的なコマンドも実行できます。
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の違い¶
dirとlsは、どちらもファイルやフォルダの一覧を表示します。
ただし、使用する環境やオプションが異なります。
| 比較項目 | 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入門講座も確認してみてください。