프로그램을 실행하는 디렉토리가 있습니다.
/usr/bin/my-dir
디렉토리 내에서 프로그램을 실행해야 하므로 cd /usr/bin/my-dir ./my-program으로 이동해야 합니다.
원격 시스템에서 다음과 같이 my-program을 업데이트하는 스크립트가 있습니다. rm -rf /usr/bin/my-dir mv my-program /usr/bin/my-dir
문제는 시스템에 ssh를 연결하고 /usr/bin/my-dir 디렉토리에 있을 때입니다. rm -rf /usr/bin/my-dir을 성공적으로 수행할 수 없기 때문에 스크립트가 실패합니다(모든 내용이 삭제됩니다). 하지만 디렉토리는 아님)
이 문제를 해결할 수 있는 방법이 있습니까(예: 디렉토리에 있는 동안 해당 디렉토리를 삭제할 수 있도록 쉘을 구성하는 방법이 있습니까?) 또는 다른 해결 방법이 있습니까? 현재 디렉토리 밖으로 CD를 내보내고 스크립트를 실행한 다음 다시 디렉토리로 CD를 보내지만 하루에 수백 번씩 이 작업을 수행해야 합니다. 이를 수행하는 더 효율적인 방법이 있어야 합니다.
답변1
누군가에게 도움이 된다면 말이죠. 쉘이 작동하는 방식은 현재 디렉토리가 쉘의 다른 인스턴스에서 삭제된 다음 다시 생성되어 파일로 채워지면 원래 쉘에 빈 디렉토리가 표시된다는 것입니다.
파일을 다시 보려면 다음으로 이동하세요.
cd .
이로 인해 디렉터리 자체를 삭제하지 않고(단지 특정 파일을 삭제하고 교체함으로써) 원래 문제가 해결되었습니다.