Firefox에서 열린 모든 URL을 덤프하는 방법

Firefox에서 열린 모든 URL을 덤프하는 방법

혼자 공부하고 있는데 갑자기 내일 과제를 제출해야 한다는 생각이 나서 이런 일들을 지금 해야 하는 상황을 상상해 보세요. 이제 탭을 닫고 작업에 대한 새 웹사이트를 엽니다. 모든 작업이 처리된 후에는 닫혀 있던 이전 탭이 필요합니다. 이제 역사 전체에서 그것들을 찾는 데 많은 시간을 낭비합니다.

현재 Firefox에 열려 있는 모든 URL을 덤프하는 스크립트를 실행하고 싶습니다. 이 스크립트에서 xargs유사한 방법을 사용하여 이전 세션을 복원할 수 있습니다. 북마크를 추가하는 것은 필요할 때 찾지 못하기 때문에 해결책이 아닌 것 같습니다.

내 생각엔 이게 도움이 될 것 같아

lsof -ai

그러나 그것은 작동하지 않았습니다. bash 스크립트로 이 문제를 해결할 수 있나요? 그게 불가능하다면 나는 사용해 볼 것이다.xdotool

답변1

주제에서 벗어나 북마크가 그렇게 나쁘지 않다는 것을 보여 드리겠습니다. 필요한 것은 저장된 세션에 대한 좋은 이름입니다.

탭을 마우스 오른쪽 버튼으로 클릭하면 선택할 수 있습니다 Bookmark All Tabs. 그러면 팝업이 나타나고 모든 탭을 포함할 폴더의 이름을 지정할 수 있습니다.

세션을 복원하는 것도 매우 쉽습니다. 북마크에서 세션 폴더를 찾아 마우스 오른쪽 버튼을 클릭하고 선택합니다 Open All in Tabs.

답변2

이것원탭 확장그것이 바로 그것이 하는 일입니다. Chromium/Chrome에서도 작동합니다.

답변3

저는 Firefox 69와 제안된 방법을 사용하고 있습니다 https://support.mozilla.org/en-US/questions/1221836나를 위해 작동합니다.

곧 현재 열려 있는 탭 목록이 <fx_profile>/sessionstore-backups/recovery.jsonlz4.

백업을 만들고 이 온라인 도구를 사용하여 열린 탭 목록을 덤프하십시오.https://www.jeffersonscher.com/ffu/scrounger.html.

답변4

Arkadiusz의 답변은 매우 훌륭하지만 문제는 파일 recovery.jsonlz4에 무엇을 해야할지 모르는 데이터가 너무 많다는 것입니다.https://support.mozilla.org/en-US/questions/1221836어떻게 해야 하는지 좋은 팁을 줍니다.

파일 자체를 특정 이름의 위치에 복사하고 필요한 경우 복원하는 dmenu래퍼 bash 스크립트를 작성했습니다 .recovery.jsonlz4

#!/bin/bash
SESSIONS="$HOME/.netsessions/"
PROFILE="$HOME/.mozilla/firefox/<use-your-profile>.default/"
[[ ! -d $PROFILE ]] && notify-send Firefox "Profile was not found" && exit 0
[[ ! -d $SESSIONS ]] && mkdir -p $SESSIONS
fireicon=/usr/share/icons/Paper/512x512/apps/firefox.png
subs=`ls "$SESSIONS"`
opt=$(echo -e "Create\nOpen\nDelete"| dmenu -fn "Droid Sans Mono-20" -i -p "firefox session:")

[[ "$opt" = "" ]] && exit 1
if [ "$opt" = "Create" ]; then
    (! pidof firefox > /dev/null ) && notify-send -t 1000 -i $fireicon Firefox "Firefox is not running" && exit 1
    opt1=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-20' -i -p "Name it to create") 
    if [ -z "$opt1" ]; then
        exit 0
    fi
    cp $PROFILE/sessionstore-backups/recovery.jsonlz4 $SESSIONS/$opt1 > /dev/null && notify-send -t 1000 -i $fireicon Firefox "Session created" && exit 0
elif [ "$opt" = "Open" ]; then
    opt2=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-20' -i -p "Name it to open") 
    if [ -z "$opt2" ]; then
        exit 0
    fi
    killall firefox >/dev/null 2>&1
    cp $SESSIONS/$opt2 $PROFILE/sessionstore.jsonlz4 > /dev/null
    setsid firefox >/dev/null 2>&1 &
elif [ "$opt" = "Delete" ]; then
    opt3=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-15' -i -p "Name it to delete") 
    if [ -z "$opt3" ]; then
        exit 0
    fi
    rm "$SESSIONS"/"$opt3" > /dev/null && notify-send -t 1000 -i $fireicon group "Session deleted" && exit 0
elif [ -z "$opt" ]; then
    exit 0
fi

저는 이 스크립트를 호출하기 위해 키 바인딩을 사용합니다. 개선할 점이 있으면 알려주시기 바랍니다.
첨부된:저는 파이어폭스 69를 사용하고 있습니다.

관련 정보