如果当前目录是DIR/
且新名称project1/
通过参数传递,则当前目录名称应替换为project1
.
答案1
如果您重命名当前工作目录,大多数 shell 将无法注意到更改($PWD
例如在其变量或提示中),因此最好使用函数而不是脚本,以便您可以通知 shell完成后进行更改,例如:
rename_cwd() {
cd . || return
new_dir=${PWD%/*}/$1
mv -- "$PWD" "$new_dir" &&
cd -- "$new_dir"
}
假设当前目录不存在/
并且目标目录尚不存在(请参阅-T
GNU 的选项mv
来改进这种情况)。
请注意,在某些情况下,$PWD
可能与现实不同步,因此上述代码最终可能会更改当前工作目录。这cd .
是为了降低在某些 shell 中发生这种情况的可能性。
答案2
我通过下面的代码得到了它
mv -T "$PWD" "../$1"
参数通过为
./rename_pwd.sh dir1
然后
cd ..
ls
表明
dir1
答案3
我写这很久以前。这是一个蹩脚的小脚本,但是它会为你重命名一些东西。