[英]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.