Làm cách nào để yêu cầu một tệp nhưng không lưu tệp bằng Wget? [đóng cửa]


140

Tôi đang sử dụng Wget để thực hiện các yêu cầu http đến một máy chủ web mới. Tôi đang làm điều này để làm ấm bộ đệm của MySQL. Tôi không muốn lưu các tệp sau khi chúng được phục vụ.

wget -nv -do-not-save-file $url

Tôi có thể làm một cái gì đó như -do-not-save-filevới wget?


3
Đây là một câu hỏi tốt hơn cho Super User hoặc Unix.SE.
Matt Ball

4
Là một nhà phát triển, tôi muốn kiểm tra một máy chủ với wget và hơn câu hỏi này là chủ đề nghiêm túc. Vì câu trả lời hay nhất về chủ đề đã nhận được 142 phiếu bầu tích cực, vì vậy câu hỏi này nên được đưa ra thành chủ đề
Mladen Adamovic

Hoặc đến -q và -O, sử dụng cờ -nd (không có thư mục) và --delete-after.
Suzana

1
Theo tài liệu trợ giúp (wget -h), bạn có thể sử dụng tùy chọn --spider để bỏ qua tải xuống (phiên bản 1.14).
đá khí công

Câu trả lời:


257

Sử dụng qcờ cho chế độ im lặng và thông báo wgetcho đầu ra ra thiết bị xuất chuẩn với O-(chữ hoa o) và chuyển hướng /dev/nullđể loại bỏ đầu ra:

wget -qO- $url &> /dev/null

>chuyển hướng đầu ra ứng dụng (vào một tệp). nếu >được đi trước bởi dấu và, shell chuyển hướng tất cả các đầu ra (lỗi và bình thường) sang quyền của tệp >. Nếu bạn không chỉ định ký hiệu, thì chỉ có đầu ra bình thường được chuyển hướng.

./app &>  file # redirect error and standard output to file
./app >   file # redirect standard output to file
./app 2>  file # redirect error output to file

nếu tập tin là /dev/nulltất cả được loại bỏ.

Điều này cũng hoạt động và đơn giản hơn:

wget -O/dev/null -q $url

ampersand và lớn hơn làm gì trong lệnh này? bạn có thể chuyển đầu ra thành / dev / null ... wget -qO- | / dev / null ...?
T. Brian Jones

Uh, tôi đã thử cái này và nó không hiệu quả với tôi. Từ những gì tôi phát hiện ra, ký hiệu và nên đến sau biểu tượng lớn hơn.
Tiago Espinha

7
Đối với người dùng Windows: wget -q -O NUL http: // ... Tắt ghi nhật ký và tuyến đường tải xuống NUL (giống như / dev / null)
vidario

wget --spider $ url Sẽ làm điều đó.
bọ rùa

1
wget -O / dev / null $ url
Bão

43

Curl làm điều đó theo mặc định mà không có bất kỳ tham số hoặc cờ nào, tôi sẽ sử dụng nó cho mục đích của bạn:

curl $url > /dev/null 2>&1

Curl là về luồng và wget là về sao chép các trang web dựa trên so sánh này .


1
Lạnh bạn giải thích 2> & 1 nghĩa là gì? Tôi nhận được> nhưng tại sao kết thúc?
apscience

2
@gladoscc >/dev/nullchuyển hướng đầu tiên std out thành / dev / null ( >/dev/nullviết tắt của từ 1>/dev/null), chuyển hướng thứ hai std err để std out.
Oleg Mikheev

@apscience Chỉ cần thêm. Bộ mô tả tệp cho std out là 1. Shell giả định std out khi bạn rời khỏi bộ mô tả từ một chuyển hướng. Vì vậy, >foođược giải thích là 1>foo. Khi &theo một chuyển hướng, nó ra lệnh cho shell chuyển hướng bộ mô tả tệp cũ về cùng một đầu ra như sau này. Trong trường hợp này, hãy 2>&1nói chuyển hướng mô tả tệp 2 (std err) đến cùng một nơi với mô tả tệp 1 (std out). Vì std out đã được chuyển hướng đến / dev / null, std err cũng sẽ được chuyển hướng đến đó. Bạn cũng có thể viết: 1>/dev/null 2>/dev/nullhoặc 2>/dev/null >&2.
ktbiz

Câu trả lời này là đúng, nhưng sau đó bao gồm chuyển hướng đầu ra giống như câu trả lời đã chọn. Chỉ cần chạy curl http://www.example.comlà đủ.
Aaron Cicali

40

Bạn có thể sử dụng -O-(chữ hoa o) để chuyển hướng nội dung đến thiết bị xuất chuẩn (đầu ra tiêu chuẩn) hoặc đến một tệp (thậm chí các tệp đặc biệt như /dev/null /dev/stderr /dev/stdout)

wget -O- http://yourdomain.com

Hoặc là:

wget -O- http://yourdomain.com > /dev/null

Hoặc: (kết quả tương tự như lệnh cuối cùng)

wget -O/dev/null http://yourdomain.com

Thx, hoạt động trên windows là tốt.
Pyjong

Cảm ơn, trực tiếp đến / / dev / null là thông minh, và do đó, câu trả lời đúng: Tôi muốn "đầu ra thống kê", nhưng không phải là nội dung.
stolsvik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.