모든 명령에 진행률 표시줄 추가

1828 단어 showdevdevops
대용량 파일을 압축하려고 하다가 터미널 앞에서 잠시 기다리면서 커피를 마시러 가야 할지 아니면 곧 끝날지 궁금해 본 적이 있습니까?

대용량 파일을 처리하고 내가 얼마나 발전했는지 파악하는 데 시간을 보낸 후 결국 산업화하기로 결정한 트릭을 발견했습니다. Spybar을 입력합니다.



다음으로 얻을 수 있는 간단한 Python 스크립트입니다.

pip install spybar


명령에 접두사를 붙이면 명령이 시작되고 진행률 표시줄이 표시됩니다. 기존 PID에 연결할 수도 있습니다. 모든 것이 설명됩니다in the readme.

그러나이 기사는 도구 사용에 관한 것이 아닙니다. 작동 방식에 관한 것입니다.

먼저 Linux와만 호환된다는 점을 명시해 보겠습니다. 다른 운영 체제에서 이 작업을 수행할 수 있는 방법이 있을 수 있지만 이 문서에서는 이에 대해 다루지 않습니다.

Linux에는 실행 중인 각 프로세스에 대한 디렉토리를 포함하는 특수 디렉토리/proc가 있습니다.

프로세스42에서 작업 중이라고 가정하면 다음을 수행하여 프로세스에서 연 모든 파일을 나열할 수 있습니다.

ls -lsh /proc/42/fd


C에서 파일을 열면 파일 처리기인 정수를 얻습니다. 이러한 모든 정수는 fd 디렉토리에 나열됩니다. 그들은 모두 그들이 여는 실제 파일에 대한 심볼릭 링크입니다. ls 를 사용하여 원하는 파일을 찾았으면 해당 번호를 메모할 수 있습니다. number 3 에 관심이 있다고 가정합니다.

해당 핸들러에 대한 일부 메타 정보가 포함된 다른 폴더가 있습니다. 다음을 수행하여 간단히 액세스할 수 있습니다.

cat /proc/42/fdinfo/3


다음과 비슷한 것을 얻을 수 있습니다.

pos:    569573376
flags:  0104000
mnt_id: 28


정확히 핸들러가 가리키는 위치를 나타내는 pos 행을 포함합니다.

그런 다음 파일 크기만 알면 됩니다. 현재 위치와 파일 크기를 모두 알면 진행률 표시줄을 생성하는 데 필요한 전부입니다.

잠시 동안 이 작업을 수행한 후 작은 도구를 작성할 것이라고 생각하여 여기까지 왔습니다. 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기