整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何在GitHub正確地使用 Curl 下載文件?

          url是在 Linux 終端中下載文件的絕佳工具。

          下載與原始文件同名的文件的常用語法非常簡單:

          curl -O URL_of_the_file
          

          這在大多數情況下都有效,但是,您會注意到,有時當您從 GitHub 或 SourceForge 下載文件時,它不會獲取正確的文件。

          例如,我試圖以 tar gz 格式下載 archinstall 腳本。這些文件位于發布頁面上。

          如果我在瀏覽器中打開這個源代碼鏈接,它會得到 .tar.gz 格式的源代碼。

          但是,如果我使用終端使用 curl 命令下載相同的文件,我會得到一個不正確存檔格式的小文件。

          tar -zxvf v2.4.2.tar.gz 
          
          gzip: stdin: not in gzip format
          tar: Child returned status 1
          tar: Error is not recoverable: exiting now
          

          當我運行 file 命令以了解確切的文件類型時,它告訴我它是一個 HTML 文檔。

          file v2.4.2.tar.gz 
          v2.4.2.tar.gz: HTML document, ASCII text, with no line terminators
          

          HTML 文檔而不是存檔 zip 或 tarball?問題出在哪里?讓我告訴你快速修復。

          使用 curl 正確下載存檔文件

          這里的問題是您擁有的 URL 重定向到實際的存檔文件。為此,您需要使用其他選項。

          curl -JLO URL_of_the_file
          

          選項可以按任何順序排列。

          這是基于 curl 命令手冊頁的選項的快速說明。

          • J:此選項告訴 -O, --remote-name 選項使用服務器指定的 Content-Disposition 文件名,而不是從 URL 中提取文件名。
          • L:如果服務器報告請求的頁面已移動到不同的位置(用 Location: 標頭和 3XX 響應代碼指示),此選項將使 curl 在新位置重做請求。
          • O:使用此選項,您無需指定下載的輸出文件名。

          正如您在下面的屏幕截圖中所見,這次我能夠使用 curl -JLO 選項下載正確的文件。

          額外提示:您需要登錄嗎?

          這適用于公共文件,但是,如果您嘗試從私有存儲庫或 GitLab 下載文件,那么您可能會看到有關重定向到登錄頁面的消息。

          <html><body>You are being <a href="https://gitlab.com/users/sign_in">redirected</a>.</body></html>
          

          在這種情況下,請為 API 令牌提供 -H 選項。

          lex方法

          首先給圖片添加一個div,設置其寬高及基本屬性,其次把div中的display元素設置成flex,最后給img添加align-items:center屬性,代碼如下:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <style tpye="text/css">
                   body{ 
                      background:#000
                  }
                  div{
                      width: 900px;
                      height: 800px;
                      background:deeppink;
                      display: flex;
                      align-items: center;
                  }
                  div img{
                      width: 579px;
                      height: 282px;
                      align-items: center;
                  }
              </style>
          </head>
          <body>
          <div>
              <img src="html.png" alt="">
          </div>
          </body>
          </html>

          看下效果

          display方法

          首先創建一個div,以及對有圖片的div設置樣式,給img的父級添加一個diaplay,并且屬性為table,并且把包含圖片的div中的display屬性設置成table-cell,最后給有圖片的div設置成vertical-align: middle; 屬性,代碼如下:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <style tpye="text/css">
                  body{
                      background: #bbb;
                  }
                  div{
                      display: table;
                      width: 900px;
                      height: 700px;
                      background: #f3f3f3;
                      display: table-cell;
                      vertical-align: middle;
                  }
                  div img{
                      width: 282px;
                  }
              </style>
          </head>
          <body>
          <div>
              <img src="html.png" alt="">
          </div>
          </body>
          </html>

          效果圖:

          小節基本要求:

          • 了解css選擇器之類選擇器

          要點:

          css選擇器之類選擇器

          目前樣式


          https://ypt.ink/blog/index

          目標樣式


          https://ypt.ink/blog/index

          Step1:定義公告位 (.gonggao選擇器的代碼)

          注意:更加精確一點來說, 以 . 開頭的選擇器,例如這個 .gongao樣式選擇器,統稱為類選擇器。因為它在div中引入的方式是這樣的

          <div class="gonggao"></div>            

          class翻譯有類的意思,所有叫它類選擇器,也就是說,樣式的引入方式決定了它的稱呼。

          (還是在body.css文件中寫)

          .main-left .gonggao{
              height: 40px;
              line-height: 40px;
              width: 100%;
              position: relative;
              border-color: #eee;
              margin: 0px 0 13px;
              box-shadow: -1px 0 0 rgba(0,0,0,0.04),0 -1px 0 rgba(0,0,0,0.04),1px 0 0 rgba(0,0,0,0.04);
              background: #fff;
              border-radius: 2px;
              border-bottom-left-radius: 2px;
              border-bottom-left-radius: 2px;
          }

          來看幾處決定性的代碼:(其它的是細節不關注)

          heigth:40px; 設置框高為40px

          width:100%; 設置框寬為100%

          line-height: 40px; 設置框內行與行之間的間距:這值一般與height的值一樣。

          background: #fff; 設置框的背景為白色

          運行,直接看效果,如下:


          Step2:定義廣告位(.guangao類選擇器的代碼)

          .main-left .panel{
              position: relative;
              border-width: 1px;
              border-style: solid;
              border-radius: 2px;
              box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
              background-color: #fff;
              color: #666;
          }
          .panel .guangao{
              padding: 50px 30px;
          }
          

          從上節的代碼結構知道,.guanggao選擇器是在.panel里面的,也就是說我給廣告位外面加了一層框,修飾這個框的類選擇器是 .panel

          看起決定性的幾處代碼,

          .panel類選擇器中的:

          background-color: #fff; 框的背景顏色是白色

          .guanggao類選擇器中的:

          padding: 50px 30px; 邊框里的內容被限制為:距離上下邊框間距是50px,左右邊框是30px;

          ps:內邊距我前面是講過的。

          直接看效果:


          Step3:定義文章的類選擇器

          .main-left .content .card{
              border-radius: 2px;
              background-color: #fff;
              box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);
              width: 452px;
              float: left;
          }

          從上篇文章可以知道,熱門文章與最新文章都是包含在card這個類選擇器中的,所以直接定義card的代碼。

          看起決定性的代碼:

          background-color: #fff; 框的背景顏色設置為白色

          width: 452px; 寬度

          float:left; 左浮動;

          ps:左浮動我前面已經說了,代碼很關鍵。大致作用就是使得邊框朝左邊靠攏


          從上篇文章知道,熱門文章與最新文章都用了card選擇器定義的div做外框,那么看效果:


          左邊一個card定義的div框,右邊一個card定義的div框。分別用來盛放熱門文章與最新文章。


          Step4:優化card選擇器,繼續編寫card-body選擇器的代碼

          .card-body{
              position: relative;
              padding: 10px 15px;
              line-height: 24px;
          }

          card-body類選擇器也是公用的。

          定義.hot類選擇器與.new選擇器

          .hot,.new{
              position: relative;
              height: 42px;
              line-height: 42px;
              padding: 0 15px;
              border-bottom: 1px solid #f6f6f6;
              color: #333;
              border-radius: 2px 2px 0 0;
              font-size: 14px;
          }

          運行看效果:



          完整body.css代碼:

          .tbody{
              background-color: rgba(61,176,203,0.15);
              padding: 10px;
              overflow: hidden;
          }
          .tbody .is-main{
              width: 85%;
              margin: 0 auto;
          }
          
          .is-main .main-left{
              width: 71%;
              float: left;
          }
          
          .is-main .main-right{
              width: 28%;
              float: right;
          }
          
          
          .main-left .gonggao{
              height: 40px;
              line-height: 40px;
              width: 100%;
              position: relative;
              border-color: #eee;
              margin: 0px 0 13px;
              box-shadow: -1px 0 0 rgba(0,0,0,0.04),0 -1px 0 rgba(0,0,0,0.04),1px 0 0 rgba(0,0,0,0.04);
              background: #fff;
              border-radius: 2px;
              border-bottom-left-radius: 2px;
              border-bottom-left-radius: 2px;
          }
          .main-left .panel{
              position: relative;
              border-width: 1px;
              border-style: solid;
              border-radius: 2px;
              box-shadow: 1px 1px 4px rgb(0 0 0 / 8%);
              background-color: #fff;
              color: #666;
          }
          
          .panel .guangao{
              padding: 50px 30px;
          }
          
          
          .main-left .content .card{
              border-radius: 2px;
              background-color: #fff;
              box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);
              width: 452px;
              float: left;
          }
          
          .card-body{
              position: relative;
              padding: 10px 15px;
              line-height: 24px;
          }
          .hot,.new{
              position: relative;
              height: 42px;
              line-height: 42px;
              padding: 0 15px;
              border-bottom: 1px solid #f6f6f6;
              color: #333;
              border-radius: 2px 2px 0 0;
              font-size: 14px;
          }
          


          建議對照body.html文件看,那樣會更清晰。可以多試試代碼,怎么試?

          刪一行代碼運行一下,看看效果是什么樣,加上去又是一個什么樣,這樣學很快就明白了。


          主站蜘蛛池模板: 影音先锋中文无码一区| 无码福利一区二区三区| 国精产品999一区二区三区有限 | 中文字幕一区日韩在线视频| 亚洲av成人一区二区三区观看在线| 精品伦精品一区二区三区视频| 亚洲一区二区三区高清视频| 中文字幕在线无码一区二区三区| 国产成人av一区二区三区不卡 | 亚洲电影唐人社一区二区| 国产乱码精品一区二区三| 国产视频一区二区| 亚洲AV无码一区二区三区久久精品 | 亚洲综合国产一区二区三区| 国产成人精品一区二区三区| 国产一区二区三区在线电影| 国产成人高清亚洲一区久久| 国产欧美色一区二区三区| 色窝窝免费一区二区三区| 国产精品第一区揄拍| 亚洲AV成人精品一区二区三区| 成人精品一区二区户外勾搭野战| 亚洲午夜电影一区二区三区 | 亚洲av成人一区二区三区在线播放 | 亚洲av高清在线观看一区二区| 亚洲国产成人久久一区WWW | 99热门精品一区二区三区无码 | 日韩AV在线不卡一区二区三区| 亚洲Av无码国产一区二区 | 日本一区二区不卡在线| 久久国产一区二区三区| 亚洲国产情侣一区二区三区| 日本一区二区三区爆乳| 日本精品一区二区三区视频| 日韩精品一区二区三区影院| 亚洲色大成网站www永久一区| 日韩国产精品无码一区二区三区| 老熟妇仑乱一区二区视頻| 无码人妻精品一区二区蜜桃| 视频一区二区在线播放| 精品国产一区二区三区在线观看 |