리디렉션이 정확히 어떻게 작동하는지 이해하려고 노력 중입니다.이 명령
# 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
모두 로 리디렉션하는데 이는 원하는 것이 아닙니다. 표준 오류를 먼저 리디렉션하여 원하는 효과를 얻을 수도 있습니다 .pv
backup.tgz
pv -n 2>&1 > backup.tgz