Shell Script для переименования текущего рабочего каталога с заданным именем

Если текущий каталог DIR/ а новое имя project1/ передается через аргумент, имя текущего каталога должно быть заменено на project1 .

Если вы переименуете текущий рабочий каталог, большинство оболочек не заметят изменения (в переменной $PWD или их приглашении для примера), поэтому было бы лучше использовать функцию вместо скрипта, чтобы вы могли уведомить оболочку изменения после того, как вы это сделали, например:

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

Это предполагает, что текущий каталог не является / и что целевой каталог еще не существует (см. -T с GNU mv чтобы улучшить ситуацию в этом случае).

Обратите внимание, что при некоторых обстоятельствах $PWD может быть несовместим с реальностью, поэтому приведенный выше код может привести к изменению текущего рабочего каталога. cd . чтобы уменьшить вероятность этого в некоторых оболочках.

Я получил его под кодом ниже

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

Аргумент прошел как

 ./rename_pwd.sh dir1 

затем

 cd .. ls 

Это показывает

 dir1 

Я написал это давно. Это дрянной маленький скрипт, но он переименует материал для вас.