& 연산자의 동작은 무엇입니까 [복제]

& 연산자의 동작은 무엇입니까 [복제]

Linux에서 명령을 연결하려고 하는데 우분투 14.04 배포판을 사용하고 있습니다. 목적은 디렉토리를 생성하고 해당 디렉토리에 들어가는 것입니다. 보통 우리는 이렇게 해요

mkdir foldername
cd foldername

이것을 시도하면 완벽합니다.

mkdir gates
cd gates 

예상대로 작동합니다. 하지만 사용할 때 상황이 예상대로 작동하지 않습니다.&

mkdir gates & cd gates, 작동하지 않습니다. 오류는 입니다 no such file or directory. Enter 키를 누르면 다음 단계에서 디렉토리 도어가 생성됩니다. 왜 이런 일이 발생합니까? 하지만 ls & mkdir gates잘 작동하는 것 같아요

답변1

&~이다쉘 배경 연산자;이전 명령을 백그라운드에 두고 계속합니다.

그래서

mkdir gates &
cd gates

mkdir gates백그라운드에서 시작되어 즉시 실행되며 cd gates디렉터리를 만들기 전에 디렉터리를 변경하려고 시도하지만 실패합니다.

ls & mkdir gates

mkdir gates아무 것도 의존하지 않기 때문에 작동합니다 ls. 발생하는 모든 일은 ls백그라운드에서 시작하여 디렉터리 목록을 출력하고 동시에 디렉터리를 mkdir생성하는 것입니다 .gates

당신은 찾고있을 수 있습니다

mkdir gates && cd gates

mkdir원하는 경우에만 디렉토리를 변경하십시오.

mkdir -p gates && cd gates

디렉터리가 이미 존재하는 경우에는 실패하지 않습니다.

관련 정보