|>> 쉘에서 무엇을 해야 합니까?

|>> 쉘에서 무엇을 해야 합니까?

이것으로부터 얻으세요나 나, 그러나 내가 댓글을 달았을 때 아무도 대답하지 않았습니다 (또한 구글링했지만 아무것도 찾지 못했습니다)

이 밈에서 얻었습니다

답변1

rm /tmp/output 2>/dev/null || :

grep nobody /etc/passwd | sed -e 's/:.*//' >>/tmp/output
grep nobody /etc/passwd |>>/tmp/output sed -e 's/:.*//'

cat /tmp/output  # should be two "nobody" lines

grep …|sed …파이프는 동일하며 이는 |>>*nix 쉘에 특별한 것이 아니며 단지 |(파이프) 및 >>(파일 추가) 연산자가 이들을 연결한다는 것을 나타냅니다. 리디렉션은 명령의 어느 위치에나 배치할 수 있습니다.

답변2

앞서 언급했듯이 이들은 동일합니다.

echo foo |>> file rev
echo foo | rev >> file

그러나 >리디렉션은 약간 다릅니다. set -o noclobber실수로 파일이 잘리는 것을 방지하기 위해 사용하는 경우

$ rm file
$ echo foo |>> file rev
$ cat file
oof
$ echo bar |> file rev
bash: file: cannot overwrite existing file
$ cat file
oof

이 경우 >|의도적으로 파일을 덮어쓰면 다음과 같은 매력적인 명령이 실행될 수 있습니다.

$ echo bar |>| file rev
$ cat file
rab

관련 정보