나는 약 8000줄의 컬 명령을 포함하는 불일치로 생성된 파일을 가지고 있는데, 그 중 대부분은 서로 비슷합니다. 문제는 각 줄을 편집할 수 없고 각 줄에 다른 출력 문을 추가할 수 없다는 것입니다. 컬이 자동으로 파일에 다른 이름을 할당하여 이전 이름을 덮어쓰지 않도록 하는 방법이 있습니까?
curl 'https://cdn.discordapp.com/emojis/585807750991183872.png?v=1' \
-H 'sec-fetch-mode: no-cors' -H 'accept-encoding: gzip, deflate, br' \
-H 'accept-language: en-US' \
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.90 Chrome/76.0.3809.94 Electron/6.0.0 Safari/537.36' \
-H 'accept: image/webp,image/apng,image/*,*/*;q=0.8' \
-H 'referer: https://canary.discordapp.com/channels/584291323893383169/607165146476969984' \
-H 'authority: cdn.discordapp.com' \
-H 'cookie: __cfduid=d36533327b001d6036b90a8c278c91d491562662533' \
-H 'sec-fetch-site: same-site' \
--compressed \
--output emoji.png ;
이 --output
명령문은 내가 각 줄의 끝을 개별적으로 편집하기 위해 훌륭한 분할 인라인 기능을 사용할 수 있었기 때문에 내가 추가한 것입니다. 모든 엔딩은 제외 --output
되고 멈춥니다 --compressed
(필요한지는 모르겠지만)
긴 이야기 짧게컬을 사용하여 각 파일을 다른 이름으로 다운로드할 수 있는 방법이 있습니까? file1
그럼 잠깐만 file 2
요?
답변1
래퍼를 넣고 curl
호출을 매개변수화하는 쉘 함수를 작성할 수 있습니다. 예를 들면 다음과 같습니다.
fetch_via_curl() {
# $1 is URL to fetch
# $2 is referrer string
# $3 is cookie string
# $4 is output file name
curl_fmt="$(cat << 'EOF'
curl '%s' \
-H 'sec-fetch-mode: no-cors' -H 'accept-encoding: gzip, deflate, br' \
-H 'accept-language: en-US' \
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.90 Chrome/76.0.3809.94 Electron/6.0.0 Safari/537.36' \
-H 'accept: image/webp,image/apng,image/*,*/*;q=0.8' \
-H 'referer: %s' \
-H 'authority: cdn.discordapp.com' \
-H 'cookie: %s' \
-H 'sec-fetch-site: same-site' \
--compressed \
--output '%s' ;
EOF
)"
file_num=
while [ -f "$4${file_num:+.${file_num}}" ]
do
file_num=$(($file_num+1))
done
curl_cmd="$(printf $curl_fmt "$1" "$2" "$3" "$4${file_num:+.${file_num}}")"
sh -c "$curl_cmd"
}
그런 다음 다음 구문을 사용하여 파일을 가져옵니다.
fetch_via_curl \
"https://cdn.discordapp.com/emojis/585807750991183872.png?v=1" \
"https://canary.discordapp.com/channels/584291323893383169/607165146476969984" \
"__cfduid=d36533327b001d6036b90a8c278c91d491562662533" \
"emoji.png"
존재하지 않는 경우 emoji.png
파일은 에 저장됩니다 . 존재하는 경우 파일 이름이 존재하지 않게 만드는 가장 작은 양의 정수인 N이 있는 위치에 emoji.png
파일이 저장됩니다 .emoji.png.N