pv로의 리디렉션은 실제로 어떻게 작동하나요?

pv로의 리디렉션은 실제로 어떻게 작동하나요?

리디렉션이 어떻게 작동하는지 알고 싶습니다.이 명령

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

영어 번역은 무엇입니까?

의 모든 데이터는 tar입력으로 리디렉션된 pv다음 ? pv로 리디렉션됩니다 .backup.tgz

그러면 왜 주위에 괄호가 필요합니까 pv?

그렇다면 이 리디렉션의 요점은 무엇입니까?

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

이후은 무슨 pv뜻 인가요 2>&1?

답변1

바라보다쉘의 제어 및 리디렉션 연산자는 무엇입니까?그리고주문 리디렉션배경.

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

tar -czf - ./Downloads/로 리디렉션된 표준 출력을 사용하여 실행하도록 쉘에 지시합니다 (pv -p --timer --rate --bytes > backup.tgz).

(pv -p --timer --rate --bytes > backup.tgz)

pv -p --timer --rate --bytes파이프에 연결된 표준 입력으로 실행하고 표준 tar출력을 backup.tgz. 압축된 아카이브를 생성하고 표준 출력( )으로 출력하라는 지시를 받았 으므로 tar전체적인 효과 f -는 압축된 아카이브를 구축 pv하고 파이프한 다음 pv에 기록하는 것입니다 backup.tgz. pv데이터 흐름에 따라 업데이트되는 진행률 표시줄을 표시합니다.

괄호는 필요하지 않습니다.

두 번째 명령은 첫 번째 파이프라인의 후반부를 변경합니다.

(pv -n > backup.tgz) 2>&1

다시 작성 backup.tgz하지만 서브쉘의 표준 오류(괄호로 표시됨)를 표준 출력으로 리디렉션하고 다음을 제공합니다.저것dialog자체 진행률 표시를 생성합니다 .

명령에 지정된 순서대로 리디렉션을 설정하는 경우 여기에 괄호가 필요합니다. stdout 및 stderr은 로 리디렉션 pv -n > backup.tgz 2>&1되며 이는 원하는 것이 아닙니다. 표준 오류를 먼저 리디렉션하면 원하는 효과를 얻을 수도 있습니다 .pvbackup.tgzpv -n 2>&1 > backup.tgz

관련 정보