cp에는 왜 wget과 같은 진행 표시줄이 없나요?

cp에는 왜 wget과 같은 진행 표시줄이 없나요?

제가 묻는 게 아니니 참고해주세요어떻게. 나는 이미 pv및 같은 옵션을 알고 있습니다 rsync -P.

나는 묻고 싶다cp적어도 표시로 진행률 표시줄을 구현하지 않습니까 ?

답변1

Unix 도구의 전통은 문제가 발생할 때만 메시지를 표시하는 것입니다. 여기에는 디자인적인 이유와 실용적인 이유가 모두 있다고 생각합니다. 문제가 발생했을 때 오류 메시지가 표시되고 실제 정보가 아닌 메시지에 오류가 묻히지 않도록 설계되었습니다. 실질적인 이유는 UNIX 초기에는 여전히텔레타이프라이터;즉, 프로그램의 출력은 종이에 인쇄되며 진행률 표시줄은 인쇄하지 않으려는 것입니다.

이유가 무엇이든, 유용한 메시지만 표시하는 전통은 UNIX 세계에 깊이 뿌리박혀 있습니다. 최신 도구에는 때때로 진행률 표시줄이 표시됩니다. rsync의 경우 주된 동기는 rsync가 일반적으로 로컬 디스크보다 훨씬 취약한 네트워크를 통해 수행되므로 진행률 표시줄이 더 유용하다는 것입니다. 동일한 추론이 wget에도 적용됩니다.

답변2

UNIX 세계에서 모든 도구는 작업을 잘 수행하도록 설계되었습니다. 다른 유사한 도구가 이미 진행 상황을 출력하는데 진행 상황 출력에 대해 걱정하는 이유는 무엇입니까 cp? pv마찬가지로, 왜 그렇게 많은 프로그램이 페이지 매김 없이 콘텐츠를 화면에 덤프합니까? more(또는 ) 등 작업에 적합한 도구가 이미 있기 때문입니다 less. 파일을 편집해야 하는 대부분의 프로그램이 편집기를 제공하지 않고 아웃소싱하는 이유는 무엇입니까 $EDITOR? 이를 통해 각 사람은 자신이 수행하도록 설계된 하나의 작업만 완료할 수 있는 반면 사용자는 자신이 선호하는 편집기를 사용하여 모든 작업을 완료할 수 있기 때문입니다.

그런데 대부분의 쉘 프로그램은 출력을 다른 쉘 프로그램으로 파이프하도록 설계되었습니다. 그들이 제공할 수 있는 유일한 출력은 체인의 다음 명령에서 구문 분석하는 데 유용한 것입니다. 비슷한 프로그램을 cp스크립트에서 사용하거나 터미널에서 수동으로 사용할 수 있으므로 출력은 주로 종료 코드와 실패하거나 성공한 파일 목록을 중심으로 이루어집니다.

원하는 효과를 얻으려면 항상 도구 조합을 사용해야 합니다.

답변3

이것은 cp에 진행률 표시줄 옵션을 추가하는 것을 찬성하고 반대하는 비주류 중 하나입니다. 이에 대한 주요 주장은 진행 상황에 대해 알고 싶은 내용을 미리 알지 못할 수도 있다는 것입니다. 이러한 목적으로 BSD에서 Ctrl-T/SIGINFO를 사용할 수 있으며, GNU/Linux 플랫폼에서 사용할 수 있는 경우 cp에서 진행률 표시줄 논리를 트리거해야 할 더 많은 이유가 있을 수 있습니다. 그 사이에 보다 일반적인 해결책은 별도의 도구를 사용하는 것입니다.이것Coreutils 진행 뷰어( progress, 이전에는 로 알려짐 cv)시스템의 모든 프로세스 상태를 표시합니다.

관련 정보