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자체 진행률 표시가 생성됩니다 .

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

관련 정보