이 리디렉션 "|>"은 단지 버그인가요, 아니면 뭔가 의미가 있나요?

이 리디렉션 "|>"은 단지 버그인가요, 아니면 뭔가 의미가 있나요?

|>오타를 냈지만 bash아무것도 인쇄되지 않았습니다. (그러나 빈 파일이 생성됩니다.) 예를 들어,

date |> tmp.txt

그게 실제로 뭔가 의미가 있을 거라고 생각했어요?

답변1

이는 두 번째 부분이 리디렉션만 포함하는 빈 명령인 파이프라인인 것 같습니다. 이렇게 써서 date | >file설명하는 게 더 쉬울 수도 있겠네요 . 빈 명령은 리디렉션을 처리하고 파일을 생성하는 것 외에는 아무 작업도 수행하지 않습니다.

date >| file반면에 noclobber셸 옵션을 재정의 하는 역할을 하여 >기존 파일을 정기적으로 덮어쓰는 것을 방지합니다.

$ touch foo; set -o noclobber
$ date > foo
bash: foo: cannot overwrite existing file
$ date >| foo       # works

답변2

예, bash의 경우 > file이름 이 file.file

[[email protected] my-tests]$ date | > my_file
[[email protected] my-tests]$ cat my_file
[[email protected] my-tests]$ 

관련 정보