✌️今天要去看Ave Mujica
好開心😍
先發文吧
由於我使用Mac,以此為例,根據官方提供的方法,以及Gemini的幫助下寫出自動化腳本
find ~/Library/Application\\ Support/Vivaldi/Crashpad -newer /Applications/Vivaldi.app -name \\\*.dmp | zip -j ~/Documents/Vivaldi\\ Crash\\ Logs\\ $(date '+%Y%m%d-%H%M') -@
這行指令是一個功能非常強大的 Unix 管道(Pipeline)組合 ,主要目的是: 自動找出 Vivaldi 瀏覽器最新產生的當機記錄檔(Crash Logs),並將它們壓縮打包到你的「文件」資料夾中 ,方便你提供給開發團隊分析。
我們把它拆解成兩個核心部分來詳細教學:
find ...:負責「搜尋」符合特定條件的檔案。| zip ...:將搜尋到的檔案清單「傳送」並「壓縮」起來。find ~/Library/Application\ Support/Vivaldi/Crashpad -newer /Applications/Vivaldi.app -name \*.dmp
find
~/Library/Application\ Support/Vivaldi/Crashpad
~ 代表你的使用者主目錄。因為 Application Support 中間有空格,所以使用了反斜線 \ 進行轉義(Escape),讓系統知道這是一整個完整夾名。這裡正是 Vivaldi 存放當機回報(Crashpad)的資料夾。-newer /Applications/Vivaldi.app
-name \*.dmp
.dmp (Dump 檔,即當機記憶體傾印檔案)的檔案。星號前面的反斜線 \* 是為了防止終端機提早把星號展開,確保這個條件能正確傳給 find 指令。| (Pipe)
find )輸出的「檔案路徑清單」,直接變成下一個指令( zip )的輸入源。就像接水管一樣,資料源源不絕地送過去。zip -j ~/Documents/Vivaldi\ Crash\ Logs\ $(date '+%Y%m%d-%H%M') -@
zip
-j (Junk paths)
-j ,壓縮檔打開後會有一層層深厚的資料夾(如 Library/Application Support/...)。加上 -j 後,所有被找到的 .dmp 檔案都會被扁平化(Flat)地直接放在壓縮檔的根目錄,乾淨俐落。~/Documents/Vivaldi\ Crash\ Logs\ $(date '+%Y%m%d-%H%M')
Vivaldi Crash Logs (空格同樣用 \ 轉義)。$(date '+%Y%m%d-%H%M') 是一個動態變數,系統執行時會自動抓取當前時間(例如 2026 年 7 月 17 日下午 3 點 43 分,就會變成 20260717-1543 )。因此每次執行的檔名都會是獨一無二的,不會覆蓋舊檔。-@
| )的關鍵參數。它告訴 zip 指令:「請去讀取前面 find 吐給你的那串檔案路徑,並把它們通通打包起來。」-j ),將它們打包成一個帶有 當前時間戳記 的 .zip 檔,並存放在你的「文件」資料夾中。打開 Mac 自帶的終端機或是其他習慣的終端機程式(iterm2、ghostty等) ,輸入以下指令來創建並編輯腳本檔案儲存並退出
打開nano並再Documents創建名為backup_vivaldi_crashes.sh的腳本(或是自己習慣的編輯器、路徑、檔名)
nano ~/Documents/backup_vivaldi_crashes.sh
#!/bin/bash
# 定義目標與輸出路徑
CRASH_DIR="$HOME/Library/Application Support/Vivaldi/Crashpad"
APP_PATH="/Applications/Vivaldi.app"
OUTPUT_DIR="$HOME/Documents"
TIMESTAMP=$(date '+%Y%m%d-%H%M')
ZIP_FILE="$OUTPUT_DIR/Vivaldi Crash Logs $TIMESTAMP.zip"
echo "🔍 正在檢查是否有最新的 Vivaldi 當機記錄..."
# 檢查 Vivaldi 主程式是否存在
if [ ! -d "$APP_PATH" ]; then
echo "❌ 找不到 Vivaldi.app,請確認應用程式安裝路徑。"
exit 1
fi
# 執行搜尋與壓縮
# 使用引號包裹變數,避免路徑中的空格導致解析錯誤
find "$CRASH_DIR" -newer "$APP_PATH" -name \*.dmp 2>/dev/null | zip -j "$ZIP_FILE" -@
# 檢查壓縮結果
if [ $? -eq 0 ] && [ -f "$ZIP_FILE" ]; then
echo "🎉 打包成功!"
echo "📦 檔案已儲存至:$ZIP_FILE"
else
echo "⚠️ 未找到比 Vivaldi.app 更新的當機記錄 (.dmp),或打包過程中發生錯誤。"
# 如果產生了空的 zip 檔,將其移除
[ -f "$ZIP_FILE" ] && rm "$ZIP_FILE"
fi
剛創建好的 .sh 檔案在 Mac 上預設是沒有執行權限的。請在終端機輸入以下指令,為該腳本加上執行權限( +x ):
chmod +x ~/Documents/backup_vivaldi_crashes.sh
以後每當 Vivaldi 發生當機,你只需要打開終端機,輸入以下指令即可一鍵執行:
~/Documents/backup_vivaldi_crashes.sh
💡 小撇步: 你也可以直接打開 Finder,進入「文件」資料夾,將
backup_vivaldi_crashes.sh拖入終端機視窗中,然後按下Enter運行!
nano ~/Documents/backup_vivaldi_crashes.sh ,貼上上方程式碼,按 Ctrl+O 再按 Enter 儲存,最後按 Ctrl+X 離開。chmod +x ~/Documents/backup_vivaldi_crashes.sh 。~/Documents/backup_vivaldi_crashes.sh 即可運行。