टर्मिनल में खुले फ़ायरफ़ॉक्स टैब का आउटपुट URL


17

मैं एक टर्मिनल कमांड के साथ वर्तमान में खोले गए फ़ायरफ़ॉक्स टैब के URL का पता लगाना चाहूंगा। क्या कोई संभावना है?

इस तरह मैं उन्हें एक पाठ फ़ाइल में लिखने और बाद में उन्हें देखने में सक्षम होगा; और सुरक्षित संसाधन (मेरे पास कई खुले टैब हैं)। मुझे पता है कि फ़ायरफ़ॉक्स के लिए एक ऐड-ऑन है, लेकिन मैं अपनी खुद की स्क्रिप्ट लिखने में अधिक असहज महसूस करूंगा।

जवाबों:


8

वर्तमान में खोले गए फ़ायरफ़ॉक्स टैब के खुले 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 का चयन करते हैं।


egrepपैटर्न के लिए आवश्यक दोहरे उद्धरण zsh। इसके अलावा, अच्छी टिप, धन्यवाद :)
चांदनी।

1
क्या आप कुछ शब्दों में वर्णन करना चाहेंगे कि यह कमांड कैसे काम करता है? जैसा कि मुझे मिलता है यह ऐसा है: sessionstore.js की सामग्री प्राप्त करें, \ n के साथ \ "को बदलने के लिए एक ऑपरेशन के लिए पाइप और http के साथ शुरू होने वाली सभी लाइनों को प्राप्त करने के लिए एक ऑपरेशन के लिए पाइप? क्या यह सही है? क्या उपयोग है? की जगह \ "?
aldorado

1
@aldorado यह की सामग्री प्रदर्शित करता sessionstore.jsफ़ाइल है, तो की आवृत्तियां की जगह "के साथ \n(एक नई पंक्ति) और फिर बाहर फिल्टर केवल युक्त लाइनों httpया https। फ़ाइल को प्रदर्शित करने का प्रयास करें और आपको पता चल जाएगा कि इसे
नए लिंक की

2
फ़ाइल में sessionstore.jsकेवल खुले टैब के पते नहीं हैं। कई अन्य पते हैं।
निकोलस बारबुल्स्को

1
यह उत्तर sessionstore.jsफ़ायरफ़ॉक्स की फ़ाइल का उपयोग करता है । समस्या यह है कि यह फ़ाइल कुख्यात टैब को खो देती है। मैं यहाँ क्या चाहता हूँ एक समानांतर समाधान है, फ़ायरफ़ॉक्स पूछ रहा है कि उसके टैब क्या हैं। जैसे AppleScript में।
निकोलस बारबुल्स्को

5

वह जानकारी $ HOME / .mozilla / firefox / * default / sessionstore.js में संग्रहित है और इसका प्रारूप json है।

निम्न उदाहरण PHP के साथ काम करने के लिए बनाया गया था। यह सभी फ़ायरफ़ॉक्स विंडोज़, सभी टैब चलता है और प्रासंगिक जानकारी प्राप्त करता है जो "प्रविष्टियों" के अंदर अंतिम प्रविष्टि है। यदि हम इसे पार्स करने के लिए xpath का उपयोग कर सकते हैं, तो यह कुछ इस तरह होगा: / windows / * / tabs / last () / url (मेरा xpath ज्ञान जंग खा गया है)।

आप इस कोड को एक टर्मिनल पर कॉपी / पेस्ट कर सकते हैं:

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";'

संपादित करें : पर्ल के साथ (लेकिन सबसे पहले, सुपो एप्ट-लीब लिबजसन-पीपी-पर्ल):

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फ़ायरफ़ॉक्स की फ़ाइल का उपयोग करता है । समस्या यह है कि यह फ़ाइल कुख्यात टैब को खो देती है। मैं यहाँ क्या चाहता हूँ एक समानांतर समाधान है, फ़ायरफ़ॉक्स पूछ रहा है कि उसके टैब क्या हैं। जैसे AppleScript में।
निकोलस बारबुल्स्को

"लूज़ टैब" से आपका क्या मतलब है? मैं वर्तमान में 5 टैब के साथ फ़ायरफ़ॉक्स चला रहा हूं और इन स्क्रिप्ट को चलाते समय मुझे ये 5 टैब दिखाई देते हैं। यह समाधान सभी विंडो और प्रत्येक विंडो के सभी टैब चलता है।
ह्यूगो विएरा


Aldorado द्वारा पोस्ट किया गया प्रश्न: (...) वर्तमान में खोले गए फ़ायरफ़ॉक्स टैब (...) के URL का पता लगाता है। आप लिस्टिंग टैब के बारे में बात कर रहे हैं जो फ़ायरफ़ॉक्स बंद करने के बाद सहेजे गए थे। इसके अलावा, उस बग को यह कुख्यात नहीं लगता ...
ह्यूगो विएरा

1
मैं recovery.js9 खिड़कियों और 840 टैब के साथ -file के लिए दोनों तरीकों का परीक्षण किया है और वे एक आकर्षण की तरह काम किया! - बस के बाद पाइप उत्पादन एक पाठ फ़ाइल में मैं स्थापित करने के लिए किया था चरित्र नक्शा करने के लिए आईएसओ-8859-15 की फ़ाइल के लिए पर्ल विधि ...!
डीजेक्रशम्मी

0

यह है कि आप फ़ायरफ़ॉक्स में फ्रंट-मोस्ट / एक्टिव टैब के वर्तमान 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 सेकंड में फ़ायरफ़ॉक्स एक बैकअप बनाता है *default/sessionstore-backups/recovery.js


1
इसके लिए php5-cli को स्थापित करने की आवश्यकता है ताकि आप अपने जवाब में सुधार कर सकें। वहाँ एक टैब के सभी हड़पने के लिए एक तरीका है न सिर्फ सामने सबसे? जैसे ओपी पूछता है।
डेमियन

मैं प्रश्न के बेमेल और मेरे उत्तर से अवगत हूँ, हालाँकि यदि आप मेरे उत्तर की जानकारी चाहते हैं तो Google आपको यहाँ निर्देशित करेगा।
लेनार होयट

0

बैश का उपयोग करके मुझे निम्नलिखित उत्तर मिला। इसके लिए केवल पैकेज की आवश्यकता है: jq। इसे स्थापित किया जा सकता है: apt-get install jq

jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.