はじめに
毎回ファイルやフォルダを探すときのコマンドを忘れるので整理します
随時更新中
Windowsで使うコマンド
主にdirとwhereコマンドを利用します。
コマンドプロンプト編
・ dirコマンド
dirコマンドのオプション一覧
基本オプション
-
/s- サブディレクトリも含めて再帰的に検索 -
/b- ファイル名のみを表示(余分な情報を省略したベアフォーマット)
属性フィルタ(/aオプション)
-
/a:d- ディレクトリのみ表示 -
/a:h- 隠しファイルのみ表示 -
/a:r- 読み取り専用ファイルのみ表示 -
/a:s- システムファイルのみ表示 -
/a:-h- 隠しファイル以外を表示(-で否定)
並び替え(/oオプション)
-
/o:n- 名前順で並び替え -
/o:s- サイズ順で並び替え -
/o:e- 拡張子順で並び替え -
/o:d- 日付順で並び替え -
/o:-s- サイズの大きい順(-で逆順)
表示形式オプション
-
/x- 8.3形式の短縮ファイル名も表示 -
/q- ファイルの所有者情報を表示
時刻フィールド(/tオプション)
-
/t:c- 作成日時を表示 -
/t:a- 最終アクセス日時を表示 -
/t:w- 最終更新日時を表示(デフォルト)
/a オプション(属性でフィルタリング)
rem 隠しファイルのみ表示
dir /a:h
rem ディレクトリのみ表示
dir /a:d
rem ディレクトリを除外してファイルのみ表示
dir /a:-d
/o オプション(並び替え)
rem サイズの大きい順に表示
dir /o:-s
rem 拡張子順→名前順で表示
dir /o:en
rem 更新日時の新しい順に表示
dir /o:-d
ファイル・フォルダ検索
rem サブディレクトリに含まれるファイルやディレクトリも表示する
dir /s
rem 現在のディレクトリとサブディレクトリから検索
dir /s *.xlsx
rem ファイル名のみを表示(パス情報なし)
dir /b *.mp3
rem 現在のディレクトリとサブディレクトリから.jsonの拡張子ファイル名を表示
dir /s /b *.json
よく使うコマンド
全ファイル:隠しファイルも含む全てのファイル
rem 全ファイルを日付の降順で表示
dir /a /o:-d /t:w
rem サブディレクトリを含む全ファイルのサイズ、日時、所有者をサイズの降順で表示
dir /a /q /s /t:c /o:-s
rem サイズ順で並び替え、サブディレクトリも検索
dir /s /o:s *.log
rem 作成日時でフィルタリング(2025/1/1〜)
dir /t:c | findstr "2025"
rem 特定の属性を持つファイルのみ表示(読み取り専用で隠しでなく、システムファイルでない)
dir /a:r-h-s
・ whereコマンド
rem PATHに含まれるディレクトリからnotepad.exeを検索
where notepad.exe
rem 指定ディレクトリから再帰検索
where /r C:\Users\Documents *.xlsx
rem 複数のパスから検索(セミコロン区切り)
where "C:\Windows;C:\Program Files:python.exe"
rem サイズとタイムスタンプも表示
where /t notepad*
rem 環境変数を使用した検索
where $PATH:cmd.exe
PowerShell編
# フォルダ内の一覧とサブフォルダの一覧を表示(dirと同じ)
Get-ChildItem
# 隠し属性、システム属性のファイルを含めて表示
Get-ChildItem -Force
# ファイルサイズが大きい順にソート
Get-ChildItem -Recurse | Sort-Object Length -Descending
# 現在のディレクトリのファイル一覧を表示
Get-ChildItem
# または短縮形
gci
# サブディレクトリを含めて再帰的に検索
Get-ChildItem -Recurse
# 特定の拡張子のファイルを再帰的に検索
Get-ChildItem *.txt -Recurse
# ファイルのみ表示
Get-ChildItem -File
# ディレクトリのみ表示
Get-ChildItem -Directory
# 隠しファイルも含めて表示
Get-ChildItem -Force
# 隠しファイルのみ表示
Get-ChildItem -Hidden
# 検索の深さを制限(2階層まで)
Get-ChildItem -Recurse -Depth 2
# エラーを無視して検索
Get-ChildItem -Recurse -ErrorAction SilentlyContinue
# 複数の拡張子を検索
Get-ChildItem -Include *.txt,*.log,*.csv -Recurse
# 特定のパターンを除外
Get-ChildItem -Recurse -Exclude *.tmp,*.bak
# 指定ディレクトリ以下を再帰的に検索
Get-ChildItem C:\Users\Documents -Recurse -Filter "*.txt"
# または
gci C:\Users\Documents\*.txt -Recurse
フィルタリング(Where-Object)
# 1MB以上のファイルを検索
gci -Recurse | Where-Object {$_.Length -gt 1MB}
# 7日以内に更新されたファイル
gci -Recurse | ? {$_.LastWriteTime -gt (Get-Date).AddDays(-7)}
Linux編
Macの場合はデフォルトで使用できます
findコマンド
findコマンドのオプション一覧
基本オプション
-
-name- ファイル名で検索(大文字小文字を区別) -
-iname- ファイル名で検索(大文字小文字を区別しない) -
-type f- ファイルのみ検索 -
-type d- ディレクトリのみ検索
時間関連オプション
-
-mtime -7- 7日以内に更新 -
-mtime +30- 30日より前に更新 -
-newer file- 指定ファイルより新しい
サイズ関連オプション
-
-size +1M- 1MB以上 -
-size -100k- 100KB未満 -
-empty- 空のファイル/ディレクトリ
その他
-
-maxdepth n- 検索の深さを制限 -
-user name- 所有者で検索 -
-exec cmd {} \;- 検索結果に対してコマンド実行
# 現在のディレクトリ以下のすべてのファイルを表示
find .
# 特定のディレクトリから検索
find /home/user/Documents
# ファイル名で検索(大文字小文字を区別)
find . -name "*.txt"
# ファイル名で検索(大文字小文字を区別しない)
find . -iname "*.txt"
# ファイルのみ検索
find . -type f
# ディレクトリのみ検索
find . -type d
# サイズで検索(1MB以上のファイル)
find . -size +1M
# 7日以内に更新されたファイル
find . -mtime -7
# 特定のユーザーが所有するファイル
find . -user username
# 複数条件の組み合わせ(.logファイルで1MB以上)
find . -name "*.log" -size +1M
# 検索結果に対してコマンドを実行
find . -name "*.txt" -exec ls -l {} \;
lsコマンド(ディレクトリ内容表示)
# 詳細情報付きで表示
ls -l
# 隠しファイルも表示
ls -a
# サイズを人間が読みやすい形式で表示
ls -lh
# 更新時刻順でソート
ls -lt
# サイズ順でソート
ls -lS
# 再帰的に表示(サブディレクトリも)
ls -R
さいごに
フォルダやファイル検索は日常的に行う作業です。
特によく使うコマンドは、ショートカットを活用すると作業効率がさらにアップします。
他にもおすすめのコマンドがあれば教えてください。
参考サイト