wget을 사용해야 하는 온라인 데이터베이스에서 파일 세트를 다운로드하려고 합니다. 내가 사용하고 있는 쉘 스크립트는 내 컴퓨터 중 하나에서 작동하지만 다른 장치에서 실행되기를 원하는데 그게 문제입니다. 어떤 이유로든 스크립트를 실행하면 다음과 같은 결과가 출력됩니다.
--2021-07-21 12:03:12-- https://archive.eso.org/downloadportalapi/calibrationxml/672f7dfa-65b6-4117-aaf5-9eb2fd4d8759/GRAVI.2017-06-29T02:59:55.346_raw2master.xml
Resolving archive.eso.org (archive.eso.org)... 134.171.46.246
Connecting to archive.eso.org (archive.eso.org)|134.171.46.246|:443... connected.
HTTP request sent, awaiting response... 200
Length: 3484 (3.4K) [application/octet-stream]
GRAVI.2017-06-29T02:59:55.346_raw2master.xml: Invalid argument
Cannot write to 'GRAVI.2017-06-29T02:59:55.346_raw2master.xml’ (Success).
저장된 위치를 설명하는 줄을 작성하는 대신 "잘못된 인수"를 출력하는데 그 이유는 잘 모르겠습니다. 두 장치 모두 동일한 버전의 wget을 실행하고 있으며 두 장치에 사용되는 스크립트는 동일합니다. 디스크 공간도 충분하므로 문제가 되지 않습니다. 쉘 스크립트를 보려면 다음을 사용할 수 있습니다.여기.
편집하다:이것은의 출력입니다
mount
/dev/sdb2 on /media/keegan/LaCie type exfat (rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)
그리고df -h
/dev/sdb2/ 9.1T 14G 9.1T 1% /media/keegan/LaCie
댓글에서 요청한대로.
답변1
:
이름에 잘못된 문자( )가 포함된 파일 시스템에 파일을 생성하려고 합니다 . 편집 내용에서 언급한 대로 파일은 exFAT
파일 시스템에 생성됩니다. 이것위키피디아 페이지다음 내용에 명확하게 명시되어 있습니다 exFAT
.
파일 이름에 허용되는 문자: 모든 유니코드 문자와는 별개로
U+0000
(NUL
) ~U+001F
(US
),/
(슬래시),\
(백슬래시),:
(콜론),*
(별표),?
(물음표),"
(따옴표),<
(보다 작음),>
(보다 큼) 및|
(세로 막대)
확인하려면 다른 명령을 사용하여 파일을 생성해 보십시오.
touch GRAVI.2017-06-29T02:59:55.346_raw2master.xml
이것이 원인이라면 다른 파일 시스템을 사용하거나 다른 이름을 사용하십시오.
답변2
앞서 언급했듯이 대상 파일 시스템(exFAT)에는 몇 가지 문자 제한이 있습니다. 따라서 --restrict-file-names=windows
옵션을 사용해야 합니다 wget
. 이는 대상 파일 이름과 디렉터리 이름에서 문제가 있는 문자를 변환합니다.