Anda harus mengambil data dari situs jarak jauh untuk mendapatkan informasi tentang file tersebut. Biasanya ini dilakukan dengan HEADpermintaan, tetapi beberapa (kebanyakan?) Server belum mengimplementasikannya dengan benar dan mengirimkan seluruh file, seperti halnya melakukan GETpermintaan. Dengan asumsi bahwa Anda telah curlmenginstal:
curl -s -v -X HEAD http://foo.com/bar/baz.pdf 2>&1| grep '^< Last-Modified:'
mungkin memberi Anda apa yang Anda inginkan, tetapi seperti yang dikatakan, itu sangat tergantung pada server.
"Paling"? Saya akan terkejut jika ada server HTTP populer yang melanggar protokol sedemikian rupa.
user1686
Seharusnya berubah tentu saja. Beberapa waktu yang lalu, ketika saya menangani masalah seperti itu, rasanya seperti itu. Namun, waktu berlalu. Jika Anda menemukan situs yang masih menjalankan cgi apa pun "aplikasi", kemungkinan besar itu tidak ditangani HEAD. Namun demikian, juga situs-situs tersebut akan memberi Anda hasilnya, karena mereka seharusnya memberikan segalanya.
Karsten S.
3
Saya sarankan menggunakan --headopsi daripada -X HEADyang lebih singkat sehingga perintah akan menjadi: curl -s -v --head http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'
Gautham C.
1
curl -svX HEADbahkan lebih singkat ...
Karsten S.
1
@ Hai-Malaikat Tidak, biasanya tidak ada. Wget menggunakan header If-Modified-Sejak untuk mengatakan "hei hanya kirim file itu jika ini lebih baru dari tanggal ini", maka terserah server untuk menerapkan dan menghormati header itu. Jika server berpikir bahwa file tersebut tidak berubah, ia mengirim respons 304 NOT MODIFIED.
antonagestam
12
Respons server biasanya memiliki Last-Modifiedbidang, Anda dapat memeriksanya tanpa mengunduh file. Tidak perlu digunakan -X HEAD, ada opsi khusus -Iuntuk itu ( -smenekan progres output) :
Ini curladalah jawaban yang lebih baik daripada yang diterima. Mungkin menggunakan grep -ikarena sering "modifikasi terakhir" memiliki kasus yang berbeda.
HEAD
. Namun demikian, juga situs-situs tersebut akan memberi Anda hasilnya, karena mereka seharusnya memberikan segalanya.--head
opsi daripada-X HEAD
yang lebih singkat sehingga perintah akan menjadi:curl -s -v --head http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'
curl -svX HEAD
bahkan lebih singkat ...Respons server biasanya memiliki
Last-Modified
bidang, Anda dapat memeriksanya tanpa mengunduh file. Tidak perlu digunakan-X HEAD
, ada opsi khusus-I
untuk itu (-s
menekan progres output) :Juga dalam kasus saya tidak ada ikal yang diinstal (saya sedang membuat skrip untuk perangkat tertanam) , hanya
wget
. Cara dengan wget adalah:The
--server-response
cetakan header, dan--spider
pasukan pilihan untuk tidak men-download halaman, melainkan memeriksa keberadaan mereka.sumber
curl
adalah jawaban yang lebih baik daripada yang diterima. Mungkin menggunakangrep -i
karena sering "modifikasi terakhir" memiliki kasus yang berbeda.