왜 'sudo bash && cd Desktop'이 데스크탑 폴더에 CD되지 않습니까? [복사]

왜 'sudo bash && cd Desktop'이 데스크탑 폴더에 CD되지 않습니까? [복사]

chmod 000다양한 항목이 포함된 권한이 있는 폴더가 있는데 , 그 폴더에 들어가는 방법은 bash.sudosudo bash

왜 나는 그것을 할 수 없습니까 &&? cd다음과 같은 명령을 사용하여 디렉토리에 들어가고 싶습니다 .

sudo bash && cd desktop

~이것을 실행하면 여전히 기본 디렉토리 에 있습니다 .

이거 실행해야 해

sudo bash
cd desktop

또한 바탕화면은 폴더가 아니고 바탕화면의 하위폴더이지만 별 상관은 없습니다. 어쨌든 마찬가지다.

답변1

그 이후의 부분은 현재 셸에서 실행되며 실행하는 일부 매개변수는 &&전달되지 않습니다 .bashsudo

시도해 볼 수도 있습니다.

sudo bash -c 'cd desktop'

그러나 이것은 bash이후에 종료되기 때문에 작동하지 않습니다 cd desktop.

당신은 시도 할 수 있습니다:

sudo sh -c 'cd desktop && exec bash'

desktop이는 "작동합니다"(즉, Bash 셸에서 uid=0인 디렉터리에 사용자를 넣습니다). 나는 하나보다는 두 개의 개별 명령을 실행하는 편이 낫습니다.

답변2

작동하지만 예상한 방식은 아닙니다. &&명령이 완료될 때까지 기다리십시오. 이때의 결과가 이면 true다음 명령어가 실행된다. 따라서 를 입력하면 bash && cd desktop먼저 bash 쉘이 표시됩니다. 를 입력하면 exit원래 있던 쉘로 돌아가게 됩니다.그 다음에디렉토리가 데스크탑 폴더로 변경됩니다.

내가 설명한 기능의 경우 sudo는 중요하지 않습니다. 귀하의 sudo 사용 사례는 모범 사례가 아닐 수 있으므로 다른 솔루션을 고려해야 합니다.

관련 정보