다음 두 가지 명령 그룹을 고려하십시오.
$ cat *.d | wc -l
그리고
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
이 두 개가 동일한 값을 출력하기를 원합니다. 그러나 내가 소유한 특정 디렉터리에서 실행하면 다음과 같은 내용이 표시됩니다.
$ cat *.d | wc -l
7026
비교해 보면:
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
295
말장난을 용서해 주신다면 내 것은 cat
꼬리에 걸려 넘어지는 것 같았습니다. 여기서 무슨 일이 일어나고 있는 걸까요? >
대신 사용하면 >>
예상되는 결과를 얻습니다 7026
.
편집하다:
자세한 내용은 로컬 CentOS 7 VM(Mac에서 실행)에서 문제가 발생하는지 확인하세요. 별도의 가상 머신에서 "동일한 작업"을 실행했기 때문에 위와 동일한 출력을 받아서는 안 됩니다. 두 명령 세트 모두 동일한 출력을 반환합니다.
두 경우 모두 버전은 cat
8.22이고 버전은 bash
4.2.46(2)입니다.