ファイル操作コマンドチートシート[Windows Mac](ファイル検索，開く，コピー，移動，名前変更，削除，作成，表示，編集コマンド)

ファイル操作，例えば，ファイル検索，ファイルやディレクトリを開く，ファイルのコピー，ファイルの移動，ファイルの削除をエクスプローラーやFinderといったGUIツールで行うと...

**ファイルどこだっけ？**
**ファイルを親ディレクトリの別の子ディレクトリに移動させて...**

このようなことがある人もいるだろう．とくに大規模プロジェクトとなるとファイルやディレクトリ数が膨大で，同じようなファイル名が存在することもある．また別のディレクトリに同じファイル名を使うことも多々ある．
面倒くさくないだろうか？

このようなファイル操作はGUIよりCUIで操作すると速い場合がある．本記事ではWindowsPowerShellまたはMacOSのターミナルでファイル操作をコマンドで行う方法について記載する

# 他のチートシート
git/gh コマンド

https://qiita.com/JavaLangRuntimeException/items/6b46551f56e0def76eba

lazygit

https://qiita.com/JavaLangRuntimeException/items/42087d09728d5739d73d

ステータスコード

https://qiita.com/JavaLangRuntimeException/items/ab1bc7b976ed2dfad91c

Docker コマンド

https://qiita.com/JavaLangRuntimeException/items/21f7c7bf3d143f821697

TypeScript

https://qiita.com/JavaLangRuntimeException/items/5894391c08e0d8e28389

SQL

https://qiita.com/JavaLangRuntimeException/items/f038fbaccdd92fb0308a

Go/Gorm

https://qiita.com/JavaLangRuntimeException/items/d388717fc1436bc3ec9d

testing/gomock

https://qiita.com/JavaLangRuntimeException/items/bf521190f6f4d79e59fb

C#/.NET/Unity

https://qiita.com/JavaLangRuntimeException/items/7849b32bc223d4aa0247

Ruby・Ruby on Rails

https://qiita.com/JavaLangRuntimeException/items/42d935cf92c212f1c7ec

プルリクエスト・マークダウン記法チートシート

https://qiita.com/JavaLangRuntimeException/items/329eb92a47a07ff4dde8

Vim

https://qiita.com/JavaLangRuntimeException/items/0c68ab96ea198e0a7294

VSCode Github Copilot拡張機能

https://qiita.com/JavaLangRuntimeException/items/be13dc3a346cf6e5ee44

OpenAI Assistants API

https://qiita.com/JavaLangRuntimeException/items/1a1abc01e8d7d05dce93

Github API

https://qiita.com/JavaLangRuntimeException/items/4f3551c31679233219ac

変数・関数(メソッド)・クラス命名規則

https://qiita.com/JavaLangRuntimeException/items/b93865c448f69bcfca4a

# 他のシリーズ記事
**TypeScriptで学ぶプログラミングの世界**
プログラミング言語を根本的に理解するシリーズです．

https://qiita.com/JavaLangRuntimeException/items/cadf49bb419076819963

**情報処理技術者試験合格への道[IP・SG・FE・AP]**
情報処理技術者試験に出題されるコンピュータサイエンス用語の紹介や単語集

https://qiita.com/JavaLangRuntimeException/items/991be402099542ccb936

**IAM AWS User クラウドサービスをフル活用しよう！**
AWSのサービスを例にしてバックエンドとインフラ開発の手法を説明するシリーズです．

https://qiita.com/JavaLangRuntimeException/items/371a334f5a6e07035db5

**AWS UserのGCP浮気日記**
GCPの様子をAWSと比較して考えてみるシリーズ

https://qiita.com/JavaLangRuntimeException/items/527d99e774165a763180

**Project Gopher: Unlocking Go’s Secrets**
Go言語や標準ライブラリの深掘り調査レポートです．

https://qiita.com/JavaLangRuntimeException/items/dc45b412d3fbd2ccb9e8

**Gopher’s Journey: Exploring TCP Protocol**
Goを用いてTCPプロトコルを探求 & 作成するシリーズです．

https://qiita.com/JavaLangRuntimeException/items/38091220106d86651d2b


# ディレクトリ(フォルダ)移動
```
cd
```
Windows Mac共通．この後にパスを入力すればコマンドで作業するディレクトリを移動できる

# ディレクトリ，ファイルを一覧表示する
```
ls
```
Windows Mac共通．`ls`のみで現在の作業中のディレクトリの中のファイルとディレクトリを表示する．

**Windows**
```powershell
ls -Force
```

**Mac**
```bash
ls -a
```
これで隠しディレクトリ，隠しファイルも含めてすべて表示できる．

# ディレクトリ・ファイル一覧をツリー状に出力
別記事で紹介しているのでこちらを参照してほしい．具体的にはこのような出力になって，`ls`より見やすいのではないだろうか．
```
.
├── ディレクトリ1
│   ├── ファイル1
│   └── ファイル2
└── ディレクトリ2
    └── ファイル3
```


https://qiita.com/tarakokko3233/items/0fbe72cd6a38add7b83c



# ファイル検索
**Windows**
```powershell
Get-ChildItem -Path C:\Users -Filter "*.txt" -Recurse
```
このコマンドは，C:\Users ディレクトリ以下で `.txt`という拡張子を持つすべてのファイルを再帰的に検索する．
**Mac**
```bash
find ~/ -name "*.txt"
```
このコマンドはホームディレクトリ以下で `.txt`という拡張子を持つすべてのファイルを再帰的に検索する．

# ファイルやディレクトリを開く
**Windows**
```powershell
Invoke-Item C:\path\to\your\folder
```
このコマンドは指定したパスのフォルダまたはファイルを既定のアプリケーションで開く．
**Mac**
```bash
open /path/to/your/folder
```
このコマンドは指定したパスのディレクトリをfinder(またはファイルを規定のアプリケーション)で開く．

# ファイルのコピー
**Windows**
```powershell
Copy-Item "C:\source\file.txt" -Destination "C:\dest"
```
このコマンドは file.txt を C:\source から C:\dest へコピーする．
**Mac**
```bash
cp /source/file.txt /dest/
```
このコマンドは file.txt を /source から /dest へコピーする．

# ファイルの移動
**Windows**
```powershell
Move-Item "C:\source\file.txt" -Destination "C:\dest"
```
このコマンドは file.txt を C:\source から C:\dest へ移動する．
**Mac**
```bash
mv /source/file.txt /dest/
```
このコマンドは file.txt を /source から /dest へ移動する．

# ファイルの名前変更
**Windows**
```powershell
Rename-Item -Path "C:\example\oldname.txt" -NewName "newname.txt"
```
このコマンドは oldname.txt の名前を newname.txtに変更する
**Mac**
```bash
mv /example/oldname.txt /example/newname.txt
```
ファイルの位置は変えずにファイル名のみを変更してmvコマンドを実行すればファイル名を変えることができる．

# ファイルの削除
**Windows**
```powershell
Remove-Item "C:\path\to\file.txt"
```
**Mac**
```bash
rm /path/to/file.txt
```
このコマンドは指定したパスの file.txt を削除する．

# ディレクトリの削除
**空の**ディレクトリの削除をするならば...

**Windows**
```powershell
Remove-Item -Path "C:\example\emptyfolder"
```
**Mac**
```bash
rmdir /example/emptyfolder
```
このコマンドは指定したパスの**空の**emptyfolder を削除する．

**中身がある**ディレクトリを削除するならば...

**Windows**
```powershell
Remove-Item -Path "C:\example\folder" -Recurse
```
**Mac**
```bash
rm -rf /example/folder
```
このコマンドは指定したパスの**中身がある**folder を削除する．


# ファイルの作成
**Windows**
```powershell
New-Item -Path "C:\example\newfile.txt" -ItemType "File"
```
**Mac**
```bash
touch /example/newfile.txt
```
このコマンドは指定したパスの newfile.txt を作成する．

# ディレクトリ(フォルダ)作成
```powershell
New-Item -Path "C:\example\newdir" -ItemType "Directory"
```
**Mac**
```bash
mkdir /example/newdir
```
exampleディレクトリの下にnewdirディレクトリを作成．

# ファイルの中身を表示する
```powershell
Get-Content "C:\example\file.txt"
```
**Mac**
```bash
cat /example/file.txt
```
exampleディレクトリの下にnewdirディレクトリを作成．

# 指定したパスのディレクトリをVSCodeで開く
:::note info
このコマンドは**Macの方の場合のみ**VSCodeでの設定が必要である
VSCodeを開いてコマンドパレットを開く

> コマンドパレットの開き方は`cmd`+`shift`+`P`

入力欄に`shell Command: install 'code' command in PATH`と入力する．
![スクリーンショット 2024-06-18 20.13.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/05abf48f-2b70-7912-1054-521b44a720ef.png)
:::
以下のコマンドを実行するとカレントディレクトリでVScodeを開く．
```bash
code .
```
このコマンドを実行すると子ディレクトリの`/test`でVScodeを開く．
```
code /test
```

# 指定したパス，ファイル，URLをFinder，エクスプローラー，デフォルトのエディター，ブラウザで開く
open(start)は指定したパス，ファイル，URLをFinder，エクスプローラー，デフォルトのエディター，ブラウザで開くコマンド．
**windows**
```
start .
```
カレントディレクトリをエクスプローラで開く

```
start filename.txt
```
filename.txtをデフォルトのエディタで開く

```
start http://example.com
```
`http://example.com `にデフォルトのブラウザでアクセスする．
**Mac**
```
open .
```
カレントディレクトリをFinderで開く

```
open filename.txt
```
filename.txtをデフォルトのエディタで開く

```
open http://example.com
```
`http://example.com `にデフォルトのブラウザでアクセスする．



## `おまけ`その他のLinux(Mac)コマンド集
そのほかのMac(Linux)コマンドの一覧はこの記事に記載してある．参考にしてほしい．

https://qiita.com/bearl27/items/224cfcfad3ed0488cff6