ไฟล์. url เทียบเท่ากับ Ubuntu


25

ลิงค์ URL ถูกบันทึกในไฟล์ * .url ผ่าน Windows และเมื่อคุณเปิดไฟล์นี้ หากคุณคลิกสองครั้งที่ทางลัดอินเทอร์เน็ตที่สร้างขึ้นใหม่ไฟล์ URL แบบง่ายมันจะเปิดเบราว์เซอร์เริ่มต้นของคุณไปยัง URL ที่ระบุ ตัวอย่างไฟล์ f URL cntent:

[InternetShortcut]
URL=http:abdennour-insat.blogspot.com

เมื่อคัดลอกไฟล์เดียวกัน (.url) บน Ubuntu OS Ubuntu จะจัดการกับไฟล์เช่นไฟล์ข้อความ ดังนั้นเบราว์เซอร์จะไม่เปิดเมื่อเรียกใช้ดับเบิลคลิกที่ไฟล์

คำถามของฉันคืออะไรไฟล์. url ที่เทียบเท่าใน Linux เพื่อสร้างไฟล์ทางลัดสำหรับ URL คืออะไร

คำตอบ:


18

ใน Ubuntu ทางลัด URL จะถูกเก็บไว้ในไฟล์ .desktopดังต่อไปนี้ (ตัวอย่าง):

[Desktop Entry]
Encoding=UTF-8
Name=Link to Best Practices Software engineering
Type=Link
URL=http://abdennour-insat.blogspot.com/
Icon=text-html

หากคุณยังต้องการเปิดไฟล์ Windows URL ในอูบุนตูนี่คือคำอธิบายวิธีการทำ:

สคริปต์ Perl ที่ให้ไว้ในบทความนั้นดูเหมือนจะใช้งานไม่ได้ แต่รหัสต่อไปนี้ควรทำสิ่งเดียวกันอย่างถูกต้อง:

#!/usr/bin/perl
# Script to make Microsoft Windows Internet Shortcuts (*.url) work on Linux.

my $browser = 'sensible-browser';  # use the system default browser

while (<>) {
    # match any line of the form "URL = something-without-spaces"
    if (/^\s*URL\s*=\s*(\S+)\s*$/) {
        exec $browser, $1;         # successful exec never returns
        die "$0: could not launch $browser: $!\n";
    }
}

3
สคริปต์ Perl นั้นดูแตกในหลายวิธี: regexp "filter out carriage return" จะไม่ทำงานเพราะมันไม่มีเครื่องหมายแบ็กสแลชและแน่นอน regexp ก่อนหน้าในส่วนifคำสั่งจะไม่ตรงกันเว้นแต่ URL จะมีหมายเลข1ด้วยเหตุผลเดียวกัน . นอกจากนี้ถ้ามันไม่จัดการอย่างใดเพื่อให้ตรงกับ URL ที่จะถูกส่งผ่านไปยังเปลือกใช้ Escape ซึ่งไม่ได้เป็นเพียงข้อบกพร่องการรักษาความปลอดภัย แต่ยังจะต้องแยก URL ใด ๆ &ที่มีพารามิเตอร์เช่นคั่นด้วย ฉันส่งข้อเสนอแนะการแก้ไขไปยังคำตอบของคุณในการแก้ไขปัญหาเหล่านี้
Ilmari Karonen

14

ใน Unity เรามีไฟล์ .desktop สำหรับกำหนดรายการบนตัวเรียกใช้งานเดสก์ท็อปหรือตำแหน่งอื่น ๆ หากต้องการสร้างสิ่งเหล่านี้โปรดดูคำถามต่อไปนี้:

ลิงก์ไปยังไฟล์อินเทอร์เน็ตอาจมีรายการที่ง่ายดังต่อไปนี้

[Desktop Entry]
Encoding=UTF-8
Name=Internet Link
Type=Link
URL=<url>
Icon=<icon to display>

คุณสามารถสร้างไฟล์ด้วยโปรแกรมแก้ไขข้อความหรือง่ายกว่านี้เพียงแค่ลากและวางที่คั่นหน้าเว็บจากเบราว์เซอร์ของคุณไปยังเดสก์ท็อป

อย่างไรก็ตามโปรดจำไว้ว่าไฟล์ .desktop แบบง่ายจะไม่เปิด URL ที่กำหนดในเบราว์เซอร์โดยอัตโนมัติหากเป้าหมายคือเช่นเอกสารข้อความหรือรูปภาพ หากต้องการเอาชนะสิ่งนี้โปรดดูคำถามต่อไปนี้:

ในกรณีที่เราจำเป็นต้องเปิดไฟล์. url บ่อยขึ้น (เช่นจากไดรฟ์ที่ใช้ร่วมกัน) เราอาจเรียกใช้สคริปต์ทุบตีแบบนี้เพื่อเปิดไฟล์:

#! /bin/bash

# opens Windows URL file submitted as command line argument in browser

source $1
xdg-open $URL

ข้อผิดพลาดจากสคริปต์นี้สามารถละเลยหรือส่งไปยังcommand not found /dev/nullหากเราต้องเชื่อมโยงสคริปต์นี้กับประเภท Mime เพื่อให้ URL ส่วนขยายดับเบิลคลิกเปิดไฟล์ URL


สคริปต์ที่เรียบง่ายน่าอัศจรรย์เมื่อเปรียบเทียบกับคำตอบอื่น ๆ ใส่มันลงใน.desktopไฟล์และเชื่อมโยง.urlไฟล์กับมันเมื่อคุณทำเสร็จแล้ว
kiri

เรียบง่าย แต่เป็นเวกเตอร์การโจมตี ในขณะที่เรากำลังดำเนินการ / เรียกใช้อาร์กิวเมนต์แรก (ไฟล์ url)
ctrl-alt-delor

3

หากคุณต้องการเก็บไฟล์. url (นี่เป็นเรื่องปกติสำหรับผู้ที่แชร์ไฟล์ระหว่าง Windows และ * เครื่อง nix) จากนั้นสร้างไฟล์สคริปต์ลองเรียกมันว่า win-urlfile.sh (หรือสิ่งที่คุณต้องการ) ใน / usr / local / bin (หรือโฟลเดอร์ที่คุณต้องการ) เปลี่ยนสิทธิ์: chmod + x win-urlfile.sh

#!/usr/bin/bash
sed 's/^BASEURL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | sed 's/\r//' | xargs xdg-open

สิ่งนี้ใช้ได้กับ * nix และ shells ทั้งหมดซึ่งอนุญาตให้คุณเปิดไฟล์. url จากตัวจัดการไฟล์ของคุณ คุณจะต้องกำหนดค่า Unity เพื่อเรียกใช้ win-urlfile.sh เมื่อเปิดประเภทไฟล์. UrL เพียงให้แน่ใจว่าตัวจัดการไฟล์ของคุณผ่านอาร์กิวเมนต์ชื่อไฟล์เดียวไปยังสคริปต์เมื่อคุณเปิดประเภทไฟล์. URL ทดสอบด้วยชื่อง่าย ๆ เช่น test.url เมื่อคุณตั้งค่าครั้งแรก

แม้ว่าโซลูชัน "ซอร์ส" (เฉพาะ bash) จะทำงานในการเรียกใช้ไฟล์ .desktop เนื่องจากรหัสสคริปต์อาจนำไปสู่การเรียกใช้โค้ดที่ไม่คาดคิด ส่วนตัวฉันคิดว่าการเข้ารหัสที่ไม่ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.