wgetを使用する必要があるオンラインデータベースからファイルセットをダウンロードしようとしています。私が使用しているシェルスクリプトは私のコンピュータの1つで動作しますが、別のデバイスで実行したいのですが、それは問題です。何らかの理由でスクリプトを実行すると、次のような結果が出力されます。
--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
。
ファイル名に許可される文字:すべてのUnicode文字とは別に
U+0000
(NUL
)〜U+001F
(US
)、/
(スラッシュ)、\
(バックスラッシュ)、:
(コロン)、*
(アスタリスク)、?
(疑問符)"
、(引用符<
)、(より小さい)、>
(より大きい)、|
(縦棒)
確認するには、別のコマンドを使用してファイルを生成してみてください。
touch GRAVI.2017-06-29T02:59:55.346_raw2master.xml
これが原因である場合は、別のファイルシステムを使用するか、別の名前を使用してください。
答え2
前述したように、ターゲットファイルシステム(exFAT)にはいくつかの文字制限があります。したがって、--restrict-file-names=windows
オプションを使用する必要がありますwget
。これは、ターゲットファイル名とディレクトリ名から問題のある文字を変換します。