Yeniden yönlendirildiğinde doğru adda bir dosyayı nasıl silebilirim?


117

Bu nedenle, Google ve Süper Kullanıcı’da bir süre arama yaptıktan sonra (ve man sayfalarını taradıktan sonra) basit bir şey olması gerektiğini düşündüğüm bir şeye cevap bulamadım:

Eğer buraya gidersen:

http://www.vim.org/scripts/script.php?script_id=2340

Ve temayı indirmeye çalışın:

http://www.vim.org/scripts/download_script.php?src_id=9750

Bunun gibi:

wget http://www.vim.org/scripts/download_script.php?src_id=9750

Muhtemelen denilen bir dosya ile sona erecek download_script.php?src_id=9750.

Ancak çağrılmasını istiyorum molokai.vim, bu dosyayı indirmek için bir tarayıcı kullanıyor olsaydım ne olurdu.

İstenilen efekt için wget için hangi seçenekleri belirtmem gerekiyor?

Ayrıca Curl eşdeğeri bir komutla da iyi olurdum.

Yanıtlar:


162
-O file
--output-document=file

Belgeler uygun dosyalara yazılmaz, ancak hepsi bir araya getirilir ve dosyaya yazılır. Eğer -dosya olarak kullanılır, belgeler bağlantı dönüşüm devre dışı bırakılması, standart çıkışa basılacaktır. ( ./-Kelimenin tam anlamıyla adlandırılmış bir dosyaya yazdırmak için kullanın -.)

Yani,

wget -O somefile.extension http://www.vim.org/scripts/download_script.php?src_id=9750

Veya wgetversiyonunuz tarafından destekleniyorsa --content-disosition seçeneğini kullanarak bunu başarabilirsiniz.

wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=9750

Adam sayfasına göre uyarılar,

--content-disposition

Bu açık olarak ayarlanmışsa, "Content-Disposition" başlıkları için deneysel (tam işlevli değil) desteği etkinleştirilir. Bu, şu anda bir "HEAD" isteği için sunucuya fazladan gidiş dönüşlerle sonuçlanabilir ve birkaç hatadan muzdarip olduğu bilinmektedir; bu nedenle varsayılan olarak etkin değildir.

Bu seçenek, indirilen bir dosyanın adının ne olması gerektiğini açıklamak için "Content-Disposition" başlıklarını kullanan bazı dosya indirme CGI programları için kullanışlıdır.

Aynı otomatik davranışı curlkullanarak,

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

-Ouzak adı kullanır ve bu adı URL yerine içerik yerleştirme başlığından almaya -Jzorlar ve gerekirse yönlendirmeleri izler.-O-L


2
Bunun otomatik olması gerektiğini belirtmeliydim
audio.zoom

Anladığım kadarıyla, wget, URL'nin bir dosyayı gösterip göstermediğini ve tam olarak destekleyebilen veya desteklemeyen içerik yerleştirme başlığını kullanarak farklı bir şeyle kaydedilmesi gerektiğini doğru şekilde bildirmek için web sayfasına güvenir. Yani otomatik olarak wget ile otomatik olarak yapamazsınız. Kıvrılma, web sayfasına bağlı olarak az çok başarılı olabilir.
EightBitTony


2
Aha - Ben hatalıyım, güncellenmiş cevabı gör. İşte bu yüzden stackexchange siteleri iyi çalışıyor - herkes bir şeyler öğreniyor, hatta soruları cevaplayan insanlar bile!
EightBitTony

1
Bu benim için bir süredir beni rahatsız eden stackexchange podcast'i için çalıştı. Teşekkürler.
Richard Campbell,

75

Wget ile bunu yapabilirsiniz:

wget --trust-server-names <url> 

Sunucunun size verdiği son dosya adını kullanarak dosyayı kaydetmek için.


2
Ben fark arasındadır merak --trust-server-namesve--content-disposition
JamesTheAwesomeDude

3
--trust-server-namesAşağıdakiler farklı bir dosyaya yönlendirmelere benziyor ve dosyayı, --content-dispositionyeniden yönlendirmeye gerek duymadan yanıt başlığında belirtilen adla adlandırıyor.
Asfand Qazi,

1
Neden bu varsayılan işlevsellik değil?!?!
hopeseekr

8
@hopeseekr Dikkatlice izlemiyorsanız, sunucu yaramaz olabilir ve .bashrc dosyasını çağırabilir. lists.gnu.org/archive/html/bug-wget/2012-04/msg00059.html
Patrick Conheady,

3

Ayrıca aria2c'yi de kullanabilirsiniz - Content-Disposition başlıklarıyla iyi çalışıyor gibi görünüyor.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.