Shell 脚本用给定名称重命名当前工作目录

Shell 脚本用给定名称重命名当前工作目录

如果当前目录是DIR/且新名称project1/通过参数传递,则当前目录名称应替换为project1.

答案1

如果您重命名当前工作目录,大多数 shell 将无法注意到更改($PWD例如在其变量或提示中),因此最好使用函数而不是脚本,以便您可以通知 shell完成后进行更改,例如:

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

假设当前目录不存在/并且目标目录尚不存在(请参阅-TGNU 的选项mv来改进这种情况)。

请注意,在某些情况下,$PWD可能与现实不同步,因此上述代码最终可能会更改当前工作目录。这cd .是为了降低在某些 shell 中发生这种情况的可能性。

答案2

我通过下面的代码得到了它

mv -T "$PWD" "../$1"

参数通过为

./rename_pwd.sh dir1

然后

cd ..

ls

表明

dir1

答案3

我写很久以前。这是一个蹩脚的小脚本,但是它会为你重命名一些东西。

相关内容