2012-03-13 1 views
101

Я использую Wget для отправки http-запросов на новый веб-сервер. Я делаю это, чтобы согреть кеш MySQL. Я не хочу сохранять файлы после их подачи.Как я могу запросить файл, но не сохранить его с помощью Wget?

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

Могу ли я сделать что-то вроде -do-not-save-file с Wget?

+3

Это лучше вопрос для Суперпользователя или Unix.SE. –

+2

как разработчик Я хочу протестировать сервер с помощью wget, и этот вопрос серьезно по теме. Как лучший ответ на тему получил 142 положительных голоса, так что этот вопрос должен быть повторно включен по теме –

ответ

191

Используйте q флаг для тихого режима, и сказать wget для вывода на стандартный вывод с O- (прописные о) и перенаправить /dev/null отбрасывать выход:

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

> перенаправляет вывод приложения (в файл). если > предшествует амперсанд, оболочка перенаправляет все выходы (ошибка и нормаль) в правый файл >. Если вы не укажете амперсанд, тогда перенаправляется только обычный выход.

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

если файл /dev/null, то все отбрасывается.

Это работает хорошо, и проще:

wget -O/dev/null -q $url 
+0

Что делать амперсанд и больше, чем делать в этой команде? вы можете просто передать вывод в/dev/null ... wget -qO- |/dev/null ...? –

+0

@ T.BrianJones, обновлено – perreal

+0

Я пробовал это, и это не сработало для меня. Из того, что я узнал, амперсанд должен прийти после символа больше, чем символ. –

39

Curl делает это по умолчанию без каких-либо параметров или флагов, я хотел бы использовать его для своих целей:

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

Curl больше о потоках а wget - больше о копировании сайтов на основе this comparison.

+1

Холодно вы объясните, что означает 2> & 1? Я получаю> но почему конец? – apscience

+2

@gladoscc first'>/dev/null' перенаправляет [std out] (http://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29) на/dev/null ('>/dev/null' сокращен для '1>/dev/null'), второй перенаправляет [std err] (http://en.wikipedia.org/wiki/Standard_streams#Standard_error_.28stderr.29) на std out. –

+0

@apscience Просто чтобы добавить. Дескриптор файла для std out 1. Оболочки принимают std, когда вы оставляете дескриптор из перенаправления. Поэтому '> foo' интерпретируется как' 1> foo'. Когда '&' следует за перенаправлением, он инструктирует оболочку перенаправить прежний файловый дескриптор на _same output_ как позже. В этом случае '2> & 1' говорит о перенаправлении дескриптора файла 2 (std err) в то же место, что и дескриптор файла 1 (std out). Поскольку std out уже перенаправлен на/dev/null, std err также будет перенаправлен туда. Вы также можете написать: '1>/dev/null 2>/dev/null' или' 2>/dev/null> & 2'. – ktbiz

30

Вы можете использовать -O- (прописную о) для перенаправления содержимого на стандартный ввод или в файл (даже специальные файлы, такие как /dev/null/dev/stderr/dev/stdout)

wget -O- http://yourdomain.com 

Или:

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

Или: (тот же результат, что и последняя команда)

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

Thx, работает и над окнами. – Pyjong

+0

Спасибо, прямой/dev/null был умным, и, следовательно, правильный ответ: я хочу, чтобы «статистика выводила», но не содержимое. – stolsvik

Смежные вопросы