使用されているファイル名がすでに存在する場合は、wget
ファイル名をに変更してください。名前をデフォルト値にfilename.extension.1
変更する必要がありますか?filename.1.extension
答え1
いいえ。
wget
ファイル名の解釈、解析、または理解を試みずに、既存のファイル名にバックアップサフィックスを追加します。これは、ファイルバックアップを作成する他のユーティリティのデフォルト動作とも一致します。
editorvim
と(他のほとんどのエディタ)は、ファイル名にバックアップサフィックスを追加するように設定できます(デフォルトではemacs
3つすべて)。ストリームエディタを使用すると、元のコンテンツ(ファイル名の末尾に追加)のバックアップを使用している間に内部編集が可能になります。 GNUとユーティリティはさまざまな複雑さのバックアップを作成できますが、常にファイル名の末尾にサフィックスを追加します。同様に、元のファイルを更新されたファイルに置き換える前に、ファイルにサフィックスを追加できます。など。nano
~
sed
sed -i.suffix
.suffix
mv
cp
rsync
ファイル名の途中にバックアップ番号を追加すると問題になります。特にファイル名/
に。file.tar.gz
myfile.7
答え2
一度ダウンロードすると
perl-rename -i "s/(.*)(\.extension)(\.[0-9]+)$/\1\3\2/" *
rename
利用可能なすべてのバージョンについて。
パス既存のファイルを上書きしたくない場合は、perl-rename
このオプションを使用してください。 「テスト実行」-i
に使用されます。-n
答え3
私のソリューションを共有したかったです。
alias wget='func(){ (wget --tries=0 --retry-connrefused --timeout=30 -O download_pkg.tmp "$1" && mv download_pkg.tmp "${1##*/}") || rm download_pkg.tmp; unset -f func; }; func
一時名でファイルをダウンロードするために「url」パラメータを受け取る関数を生成します。成功すると、$ {1##*/}を使用してパラメータ$ 1から抽出された正しいファイル名に名前が変更されます。失敗すると、一時ファイルが削除されます。ジョブが中断されると、次回実行時に一時ファイルが置き換えられます。最終的に unset -f は、エイリアスの実行時に関数定義を削除します。