現在の作業ディレクトリの名前を指定された名前に変更するシェルスクリプト

現在の作業ディレクトリの名前を指定された名前に変更するシェルスクリプト

現在のディレクトリがあり、DIR/新しい名前がproject1/パラメータとして渡される場合は、現在のディレクトリ名をに変更する必要がありますproject1

ベストアンサー1

現在の作業ディレクトリの名前を変更すると、ほとんどのシェルは変更($PWD変数やプロンプトなど)がわからないため、シェルに変更を通知できるようにスクリプトではなく関数を使用することをお勧めします。完了したら、次のようになります。

rename_cwd() {
  cd . || return
  new_dir=${PWD%/*}/$1
  mv -- "$PWD" "$new_dir" &&
    cd -- "$new_dir"
}

/現在のディレクトリが存在せず、ターゲットディレクトリもまだ存在していないとします(この状況を改善するには、-TGNUオプションを参照してくださいmv)。

場合によっては、$PWDこれが現実と同期しない可能性があるため、上記のコードは最終的に現在の作業ディレクトリを変更する可能性があります。これはcd .、一部のシェルでこれが発生する可能性を減らすためです。

おすすめ記事