簡體   English   中英

Bash腳本來gzip特定文件擴展名

[英]Bash script to gzip specific file extensions

給我一個腳本,該腳本可以找到所有html文件並將其分別壓縮到新位置

#!/bin/bash
for i in .html; do
gzip < $i > /backup/full/$i
done

我不確定我是否完全理解它的工作原理,因為它僅在與文件位於同一目錄時才起作用。 如果腳本出於任何原因而位於其他位置怎么辦?

嘗試這樣添加文件路徑會導致原始路徑和目標路徑都被合並,並且會出現錯誤

for i in /html/directory/*.html; do
gzip < $i > /backup/full/$i
done

感謝您的時間

構造輸出文件名時,需要刪除原始目錄前綴。

gzip < "$i" > /backup/full/"$(basename "$i").gz"

或使用參數擴展運算符:

gzip < "$i" > /backup/full/"${i##*/}".gz

不要忘了用引號將變量引起來,這樣帶有空格的文件名將被正確處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM