파일에 일부 데이터 (일부 디렉토리의 * conf)를 넣는 연습이 있으며 백그라운드에서이 작업을 수행해야합니다. 내가 해냈고 출력 메시지의 의미가 무엇인지 궁금합니다.
[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &
Enter가이 행을 올립니다.
[1] 2533
무슨 뜻입니까? 다른 Enter 후에 다른 메시지가 나타납니다.
[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1
무슨 의미입니까? “Exit 2″가 무엇인가요?
확인 결과를 입력하세요. 괜찮은 것 같습니다.
[A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$
CentOS 6.4를 사용하고 있습니다. 그놈 터미널 에뮬레이터.
답변
무슨 의미입니까? “Exit 2″란 무엇입니까?
ls
의 종료 상태입니다. ls에 대한 man 참조 :
Exit status: 0 if OK, 1 if minor problems (e.g., cannot access subdirectory), 2 if serious trouble (e.g., cannot access command-line argument).
이유는 /etc
에 * conf 파일이 많기 때문인 것 같습니다. / usr에 * conf 파일이 없습니다. 사실 ls -ld /usr/*conf;
도 같은 효과를 냈을 것입니다.
그래서 기존에있는 ls
file :
ls main.cpp; echo $? main.cpp 0
존재하지 않는 파일의 경우 :
ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2
또는 존재하지 않는 파일에 대한 백그라운드 프로세스 ls :
>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp
댓글
conf ".
/usr/*conf
. 그리고 bash
는 해당 패턴과 일치하는 파일을 ' 찾을 수 없기 때문에 해당 파일 이름을 전달합니다. zsh
와 같은 더 나은 셸은 " 일치하지 않음 " 오류를 반환하고 ls
. 답변
즉, 명령이 완료되었습니다. 종료 상태가 0 (성공)과 다릅니다.
끝에 배치 (&)하지 마십시오. , 어떻게되는지 확인하세요.
명령을 실행할 때 많은 시간이 소요되는 경우 다음을 통해 확인할 수 있습니다.
lnx #> 작업 -l
ls /usr/*conf
가2
를 반환한다는 것을 깨달았습니다. id = “eb9ec21234″>