0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Mac / zsh】.gitignore を含めてディレクトリを一段上に移動する方法

0
Posted at

はじめに

プロジェクト開発で、余計にネストしたディレクトリ構成に出くわすことがあります。

pj/backend/backend/src

これを次のように整理したいケースです。

pj/backend/src

詰まったポイント

bash でよく紹介されている以下の方法を試したところ…

shopt -s dotglob
mv backend/* .

⚠️エラー発生

zsh: command not found: shopt

原因

・Macのデフォルトシェルは zsh
shopt はbash専用コマンド

→ zsh では別の方法を使う必要がありました

bash と zsh の違いは?

bash も zsh も、「ターミナルで使うシェル」です。

一言でいうと

・bash:昔からある標準。安定・資料が多い
・zsh:bash を進化させた高機能版。今どき・便利

bash(Bourne Again Shell)とは

・長年 Linux / Unix の標準として使用される
・サーバーや古い環境で今も多く使われている

zsh(Z Shell)とは

・bash の上位互換(より高機能)
・Mac のデフォルトシェル(Catalina 以降)

zsh は、複雑な操作を簡単に行うためのツールとしても機能します。
zsh のほうが高機能!とおぼえておくと良さそうです。

解決方法(zsh / Mac)

前提ディレクトリ構成

pj/
└── backend/
    └── backend/
        ├── src/
        ├── pom.xml
        ├── .gitignore
        └── ...

① 外側の backend に移動

cd pj/backend

② 隠しファイル(.gitignore)含めて移動

mv backend/* backend/.[!.]* backend/..?* .

これで以下がすべて移動されます。
・通常ファイル / ディレクトリ(*)
・.gitignore や .mvn などの隠しファイル
※ . や .. は除外されるため安全

③ 空になったディレクトリを削除

rmdir backend

移動後の構成

pj/
└── backend/
    ├── src/
    ├── pom.xml
    ├── .gitignore
    └── ...

確認コマンド

ls -la

.gitignore が表示されていれば成功です。

Git 管理している場合

git status
git add .
git commit -m "Fix project structure: flatten backend directory"

mv を使っているため、
Git 上でも移動として正しく認識されます。

まとめ

・shopt は bash 専用
・Mac(zsh)では 隠しファイル込み移動は以下が安全

補足

一時的に bash を使う方法もありますが、zsh のやり方も整理しておきます。

shopt -s dotglob
mv backend/* .
exit
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?