현재 작업 디렉토리의 이름을 주어진 이름으로 바꾸는 쉘 스크립트

현재 작업 디렉토리의 이름을 주어진 이름으로 바꾸는 쉘 스크립트

현재 디렉터리가 DIR/이고 새 이름이 project1/매개 변수로 전달되면 현재 디렉터리 이름을 로 바꿔야 합니다 project1.

답변1

현재 작업 디렉토리의 이름을 바꾸면 대부분의 쉘은 변경 사항( $PWD예: 변수 또는 프롬프트에서)을 알 수 없으므로 쉘에 변경 사항을 알릴 수 있도록 스크립트보다는 함수를 사용하는 것이 좋습니다. 완료되면 예를 들면 다음과 같습니다.

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

/현재 디렉터리가 존재하지 않고 대상 디렉터리도 아직 존재하지 않는다고 가정합니다 (이 상황을 개선하려면 -TGNU 옵션을 참조하세요 mv).

어떤 경우에는 $PWD이것이 현실과 동기화되지 않을 수 있으므로 위의 코드는 결국 현재 작업 디렉터리를 변경하게 될 수 있습니다. 이는 cd .일부 쉘에서 이런 일이 발생할 가능성을 줄이기 위한 것입니다.

답변2

나는 다음 코드로 그것을 얻었다

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

매개변수는 다음과 같이 전달됩니다.

./rename_pwd.sh dir1

그 다음에

cd ..

ls

보여주다

dir1

답변3

나는 썼다이것아주 아주 오래전에. 형편없는 작은 스크립트이지만 이름을 바꿔줄 것입니다.

관련 정보