다음 두 가지 명령 세트를 고려하십시오.
$ 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
말장난을 용서할 수 있다면 내 자신의 꼬리에 걸려 넘어지는 것 같습니다 . 여기서 무슨 일이 일어나고 있나요? then >
대신 사용하면 >>
예상되는 출력은 7026
.
편집하다:
자세한 내용은 로컬 CentOS 7 VM(Mac에서 실행 중)에서 문제가 발생하고 있다는 점입니다. 별도의 VM에서 "동일한 작업"을 실행했는데 위와 동일한 출력이 나오지 않아서 두 명령 세트 모두 동일한 출력을 반환해서는 안 됩니다.
두 경우 모두 버전은 cat
8.22이고 버전은 bash
4.2.46(2)입니다.