답변:
열린 Firefox 탭의 현재 열려있는 URL은 디렉토리 sessionstore.js
어딘가에있는 파일에 저장됩니다 $HOME/.mozilla/firefox/XXXXXXXX.default
.
따라서 다음과 같이 시작할 수 있습니다.
cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4
사용하여 cat
우리가 파일을 표시 할 수 있습니다, 그리고 도움으로 sed
, egrep
그리고 cut
우리는 그 파일에서 열린 파이어 폭스 탭의 URL을 선택합니다.
sessionstore.js
다음의 발행 수를 대체, 파일 "
에 \n
포함 된 전용 라인을 필터링 한 후 (줄 바꿈) 및 http
또는 https
. 파일을 표시하면 개행이 필요한 이유를 알 수 있습니다. :)
sessionstore.js
에는 열린 탭의 주소 만이 없습니다. 다른 많은 주소가 있습니다.
sessionstore.js
Firefox 파일 을 사용합니다 . 문제는이 파일이 악명 높은 탭을 잃어버린다는 것입니다. 여기서 내가 원하는 것은 Firefox의 탭이 무엇인지 묻는 병렬 솔루션입니다. AppleScript처럼.
이 정보는 $ HOME / .mozilla / firefox / * default / sessionstore.js에 저장되며 형식은 json입니다.
다음 예제는 PHP에서 작동하도록 만들어졌습니다. 모든 파이어 폭스 창, 모든 탭을 걷고 "항목"의 마지막 항목 인 관련 정보를 얻습니다. xpath를 사용하여 구문 분석 할 수 있다면 / windows / * / tabs / last () / url과 같습니다.
이 코드를 터미널에 복사 / 붙여 넣기 할 수 있습니다.
cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r '
$json=json_decode(fgets(STDIN), TRUE);
foreach($json["windows"] as $w)
foreach($w["tabs"] as $t)
echo end($t["entries"])["url"]."\n";'
편집 : perl 사용 (그러나 먼저 sudo apt-get install libjson-pp-perl) :
cat $HOME/.mozilla/firefox/*default/sessionstore.js | perl -e '
use JSON qw( decode_json );
my $json = decode_json(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
foreach my $t ( @{$w->{"tabs"}} ) {
print $t->{"entries"}[-1]->{"url"}."\n";
}
}'
sessionstore.js
Firefox 파일 을 사용합니다 . 문제는이 파일이 악명 높은 탭을 잃어버린다는 것입니다. 여기서 내가 원하는 것은 Firefox의 탭이 무엇인지 묻는 병렬 솔루션입니다. AppleScript처럼.
recovery.js
9 개의 창과 840 개의 탭이 있는 -file의 두 가지 방법을 모두 테스트 했으며 매력처럼 작동했습니다! - 출력 을 텍스트 파일로 파이프 한 직후 에 perl-method 파일에 대해 문자 맵 을 ISO-8859-15 로 설정해야했습니다 ...!
Firefox에서 맨 앞 / 활성 탭의 현재 URL을 추출하는 방법은 다음과 같습니다.
cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];'
설명 : 먼저이 탭에서 활성 탭의 색인을 찾은 $tindex
후 활성 히스토리 항목 의 색인을 찾습니다 $eindex
.
15 초마다 Firefox는에 백업을 만듭니다 *default/sessionstore-backups/recovery.js
.
egrep
패턴에 큰 따옴표가 필요합니다zsh
. 그 외에, 좋은 팁, 감사합니다 :)