
제목에 적힌 대로 이전 명령인 'youtube-dl'이 완료되고 닫힌 후에만 명령을 실행하고 싶습니다. 우분투 터미널의 bash에서는 이 명령을 실행하지 않습니다.
다음 명령을 실행하고 싶습니다.
Youtube-dl -o output.file link ; sleep 4 ; mv output* /to-directory
명령 1은 5초에서 xx분까지 실행될 수 있으며, 4초 동안 절전 모드로 설정하면 결과에 관계없이 명령 1이 완료되고 닫힐 때 명령 2를 실행하는 데 충분한 시간이 걸리지 않을 수 있습니다. 무기한 시간 경과를 위해 sleep 4를 사용할 수 있지만 명령 실행 속도가 완전히 저하됩니다.
답변1
정말로 파일을 이동만 하고 싶다면 대상 디렉터리로 직접 출력하면 되지 않나요?
youtube-dl -o /to-directory/output.file link
매우 복잡한 다른 작업을 수행하려면 --exec
하단에 설명된 옵션을 사용할 수 있으므로 youtube-dl -h
명령은 다음과 같습니다.
youtube-dl -o output.file link --exec 'mv {} /to-directory/'
다음은 실제 예입니다:
youtube-dl -o irakli https://youtu.be/FyV_49qbvU4 --exec 'mv {} ~/Desktop/'
명령이 완료되면 파일 irakli.mkv
은 Desktop
. 즐겁게 시청하세요!
보너스 트랙 :) 다음은 데스크탑 브라우저를 통해 탐색하는 동안 youtube.com에서 mp3를 다운로드하기 위해 사용하고 있는 스크립트 중 하나입니다.
cat /usr/local/bin/youtube-dl-clipboard # The file must be executable, of course
#!/bin/sh
notify-send "YouTube-Download BEGIN"
youtube-dl -i -x --audio-format mp3 --output "$HOME/Downloads/%(title)s.%(ext)s" "$(xclip -o)"
- 스크립트는 를 사용하므로
xclip
최신 버전과 함께 설치되어야 합니다.youtube-dl
.
다음과 같이 사용자 정의 바로가기를 만드세요.
그럼 탐색하는 동안youtube.com, 원하는 동영상의 링크를 복사한 Ctrl다음 + +를 C누르세요 . 몇 초 후에 다운로드 디렉터리에서 새 mp3 파일을 사용할 수 있습니다.CtrlAltV
답변2
Youtube-dl -o output.file link && sleep 4 && mv output* /to-directory
또는 더 나은 점은
Youtube-dl -o /to-directory/output.file link
나중에 아무것도 이동할 필요가 없기 때문입니다.
youtube-dl이 실제로 백그라운드에서 실행되고 다운로드 후 종료되도록 설정된 경우 다음을
사용할 수 있습니다.
youtube-dl -o output.file link; while :;do sleep 1; [[ $(ps -C youtube-dl -o pid=) ]] || break;done; mv output.* /to-directory/
설명
while :;
- youtube-dl이 완료될 때까지 기다리는 무한 루프입니다.
[[ $(ps -C youtube-dl -o pid=) ]] || break
- youtube-dl에 대한 프로세스 ID가 있는지 확인하십시오. 존재하는 경우 다시 반복하십시오. 그렇지 않으면 루프를 종료합니다.(사용 break
)
메모: pidof Youtube-dl
명령을 사용하여 프로그램의 프로세스 ID를 얻을 수 있습니다. 그러나 youtube-dl은 python3을 사용하여 호출되므로 자체 프로세스가 없습니다. 따라서 pidof youtube-dl
이 경우에는 값이 산출되지 않습니다. 따라서 ps
pid를 얻기 위해 명령이 사용되었습니다.