URLが存在することを確認してください。

URLが存在することを確認してください。

URLをダウンロードせずに存在することを確認したいと思います。私は以下を使用していますcurl

if [[ $(curl ftp://ftp.somewhere.com/bigfile.gz) ]] 2>/dev/null;
 then
  echo "This page exists."
 else
  echo "This page does not exist."
fi

または以下を使用してくださいwget

if [[ $(wget ftp://ftp.somewhere.com/bigfile.gz) -O-]] 2>/dev/null;
 then
  echo "This page exists."
 else
  echo "This page does not exist."
fi

URLが存在しない場合は完全に機能します。存在する場合、ファイルがダウンロードされます。私の場合、ファイルは非常に大きく、ダウンロードしたくありません。 URLが存在するかどうかを知りたいです。

答え1

あなたは近いです。この問題を解決する正しい方法は、次を使用することです。方法。

カールの使用:

if curl --head --silent --fail ftp://ftp.somewhere.com/bigfile.gz 2> /dev/null;
 then
  echo "This page exists."
 else
  echo "This page does not exist."
fi

またはwgetを使用してください:

if wget -q --method=HEAD ftp://ftp.somewhere.com/bigfile.gz;
 then
  echo "This page exists."
 else
  echo "This page does not exist."
fi

答え2

--spiderツールで引数を使用するのが最善だと思いますwget。また、wget軽量バージョンのツール(BusyBox内)でも機能します。

例:

URL="http://www.google.com"

if wget --spider "${URL}" 2>/dev/null; then
    echo "OK !"
else
    echo "ERROR ! Online URL ${URL} not found !"
fi

答え3

curl --head ヘッダーのみを取得するには(HTTP FTP FILE)を試してください!

status=$(curl --head --silent ftp://ftp.somewhere.com/bigfile.gz | head -n 1)

if echo "$status" | grep -q 404
  echo "file does not exist"
else
  echo "file exists"
fi

答え4

echo $(curl --head --silent <url> | head -n 1)

関連情報