一千萬個為什麽

搜索

保存和恢復終端標簽的一些快速方法?

我有一個終端窗口,打開了十幾個命名選項卡。

我想保存當前配置並使用名稱和目錄進行恢復。

有沒有辦法做到這一點?

最佳答案

要將配置保存到/tmp/cfg

gnome-terminal --save-config=/tmp/cfg

要加載它:

gnome-terminal --load-config=/tmp/cfg 

更新</強>

在使用bash後,我創建了以下腳本,它將選項卡名稱存儲到文件/tmp/test 中:

#!/usr/bin/env bash

gnome-terminal --save-config=/tmp/test

LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' /tmp/test | wc -l); i++))
do
    TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
    sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test 
done

要正確分配名稱,必須從終端的第一個選項卡運行它。加載與以前相同:

gnome-terminal --load-config=/tmp/test

說明</強>

我可以使用以下來獲取標簽名稱:

xprop -id $WINDOWID WM_NAME

我可以使用以下內容跳轉到下一個標簽:

xdotool key ctrl+Page_Down;

我在獲取之前保存的配置文件後獲得了多個選項卡:

$(grep '\[Terminal' /tmp/test | wc -l)

所以我可以叠代循環中的制表符。我必須為之前保存的文件中的每個選項卡配置部分添加“Title = titlename”條目。要做到這一點,首先我要創建一個行號數組,我將添加行。

LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))

我在循環中添加“Title = titlename”行叠代標簽:

sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test 

轉載註明原文: 保存和恢復終端標簽的一些快速方法?