ssh
Rails 서버에 들어가서 에 있다면 실제로 /var/www/some_app/current
는 에 대한 심볼릭 링크입니다 /var/www/some_app/releases/20201015004444
. 배포하면 current
(예를 들어) 를 가리키는 새 심볼릭 링크로 대체됩니다 /var/www/some_app/releases/20201023010000
.
그러나 pwd
출력이나 변경 값은 없습니다 $PWD
. 물론 내 팁은 바뀌지 않을 것이다. 뭔가 잘못되었다는 명백한 징후는 없었습니다. 모든 것이 훌륭한 것처럼 윙윙거리며, 새 심볼릭 링크로 변경해야 한다는 사실을 잊어버리면 문제가 발생하거나 실패할 때까지 디렉터리를 변경하는 것을 잊어버렸다는 사실을 알 수 없습니다.
current
실제 현재 디렉터리와 실제 현재 디렉터리 값을 쉽게 비교할 수 있는 방법은 무엇입니까 ?
답변1
readlink -f .
네가 어디에 있는지 알려줄게실제로예,
readlink -f $PWD
심볼릭 링크가 무엇인지 알려드리겠습니다.지금현재 있는 디렉터리가 아니더라도 가리킵니다.
이는 함수에 쉽게 캡슐화될 수 있습니다(필요한 경우 자동으로 트리거할 수 있음).
correct_current_directory() {
[[ $(readlink -f .) = $(readlink -f $PWD) ]] || echo "Moving $PWD from $(readlink -f .) to $(readlink -f $PWD)" && cd $PWD
}
물론아무것도 없다현재 위치에 있다고 생각하지만 심볼릭 링크가 다른 디렉터리로 이동된 경우 문제가 해결되고 있음을 정중하게 알려줄 것입니다. 이전 위치와 새 위치가 모두 나열되므로 무슨 일이 일어나고 있는지 정확히 알 수 있으며 이동하고 싶지 않은 드문 경우인 0.01%의 시간 내에 다시 이동할 수 있습니다.