Chromium의 현재 다운로드가 모두 완료되었는지 확인하는 명령줄 방법이 있나요?

Chromium의 현재 다운로드가 모두 완료되었는지 확인하는 명령줄 방법이 있나요?

Chromium의 현재 다운로드가 모두 완료되었는지 확인하는 명령줄 방법이 있습니까? 다운로드란 Youtube에서 비디오를 다운로드하는 것을 의미합니다. 진행 중인 다운로드가 있는지 확인하기 위해 Chromium의 다운로드 탭만 보고 싶지는 않습니다. 다운로드가 진행 중인지 확인하기 위해 실행할 수 있는 명령이나 파일이 있습니까?

답변1

다운로드 중인 파일의 경로를 알고 있는 경우(예: 파일을 모두 하나의 디렉터리에 저장한 경우) 파일이 아직 열려 있는지 확인할 수 있습니다.

lsof ~/Downloads

Chrome에서 작성이 완료되면 알림을 받을 수 있습니다(가정).리눅스:

inotifywait -e close_write ~/Downloads

보류 중인 다운로드(또는 완료된 다운로드)를 모두 나열하려면 Chrome 데이터베이스에 액세스하는 것이 서투른 방법입니다. Chrome은 데이터베이스를 잠긴 상태로 유지하기 때문에 데이터베이스에 직접 액세스할 수 없으며(적어도 명령줄 sqlite3도구를 사용하지 않고) 파일의 복사본을 만들어야 하며 일관성 없는 보기를 얻을 가능성이 적습니다. 완전히 신뢰할 수는 없지만 캐주얼하게 사용하기에는 충분할 것입니다.

tmp=$(mktemp)
cp ~/.config/google-chrome/Default/Downloads "$tmp"
echo 'select target_path from downloads where end_time is null;' | sqlite3 "$tmp"
rm "$tmp"

가장 좋은 방법은 다운로드가 완료되면 Chrome에서 알림을 보내는 것입니다. 확장하다알리미 다운로드하지만 부작용이 있고 명령줄에서 쉽게 사용할 수 있는 것보다 데스크톱 알림을 제공합니다. 코드의 핵심 부분은 다음과 같습니다.

chrome.downloads.onChanged.addListener(function(obj) {
    if (obj.hasOwnProperty("state") && obj.state.current === "complete") {
        chrome.downloads.search({id: did}, function(items) {
            filename = items[0].filename;
        }
    }
});

외부 세계와 통신할 수 있는 방법을 작성해야 하는 것(아마도 확장 디렉토리 어딘가에 파일을 생성하는 것)은 Chrome 확장 프로그램 프로그래밍에 대한 나의 지식을 넘어서는 것입니다.

관련 정보