Làm thế nào để tạo một tập tin siêu liên kết?


4

Tôi biết câu hỏi này nghe có vẻ quá chung chung nhưng tôi không thể tìm được câu trả lời cho nó.

Làm cách nào tôi có thể tạo tệp liên kết (mềm / cứng) khi mở, chuyển hướng tôi đến trang web có httpgiao thức?

Một cách có thể tôi có thể nghĩ đến là tạo ra một kịch bản shell khập khiễng và làm cho nó có thể thực thi được, nó có thể sử dụng trình duyệt để mở một trang web. Nhưng không có khái niệm về một "tập tin siêu liên kết"?


Bạn có thể tạo một tệp HTML có <meta>chuyển hướng trong đó.
slhck

1
Một liên kết (cứng / mềm) mở ra như thế nào ? Chỉ từ một môi trường đồ họa hoặc từ dòng lệnh quá?
Hastur

Câu trả lời:


6

Thêm cái này vào target.html:

<html>
<head>
<meta http-equiv="refresh" content="0; url=http://example.com/" />
</head>
</html>

Bây giờ nếu bạn chạy firefox target.htmlnó sẽ mở example.com.


Để làm rõ, không có thứ gọi là "tệp siêu liên kết". Bạn có thể đã nghe nói về các liên kết tượng trưngcứng , nhưng đó chỉ là một cách để tham khảo một tệp trên đĩa - chúng không phải là URL. Từ man ln:

Liên kết tượng trưng có thể giữ văn bản tùy ý; nếu sau đó được giải quyết, một liên kết tương đối được diễn giải liên quan đến thư mục mẹ của nó.


4

xdbg-open là ứng dụng mặc định để mở bất cứ thứ gì, vì vậy bạn có thể tạo tập lệnh bash như thế này:

#!/bin/bash
if which xdg-open > /dev/null
then
  xdg-open YOUR_URL
elif which gnome-open > /dev/null
then
  gnome-open YOUR_URL
fi

Thay thế MY_URL tương ứng, lưu tệp và làm cho nó có thể thực thi được ( chmod +x filename.sh)


1
Giải pháp thực tế +1 cho một vấn đề không thể :)
l0b0

4

.desktoptập tin:

$ cat ~/Desktop/Link.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Link to your site
URL=http://your-site-url.com
Icon=text-html

Đây là một câu trả lời có thể có khi giải pháp của bạn không cần phải dựa trên dòng lệnh, nhưng được cho là để đạt được nhiều sự thoải mái.

Tất nhiên các .desktoptập tin không phải được lưu trữ trong ~/Desktop/. Tôi chỉ sử dụng vị trí này vì chúng có thể được sử dụng ở vị trí đó.


1
Điều này còn thiếu Type=Link; Khóa được yêu cầu vô điều kiện và giá trị được yêu cầu để sử dụng nó làm tệp liên kết web.
Ignacio Vazquez-Abrams

1

Một câu trả lời chưa được đưa ra, là sử dụng các binfmt_misckhả năng của Linux , để tạo ra một định dạng liên kết thực thi riêng hoạt động ở cấp độ kernel!

Để tự động mở bất kỳ .linktệp nào xdg-open, hãy đặt tệp này vào trong tệp thực thi tại /etc/local.d/binfmt_misc.starthoặc bất kỳ tệp nào mà HĐH của bạn chạy khi khởi động:

#! /bin/sh
echo ':open-hyperlink:E::link::/usr/local/bin/open-hyperlink:' > /proc/sys/fs/binfmt_misc/register

và đặt những thứ sau đây vào /usr/local/bin/open-hyperlinktệp thực thi:

#! /bin/sh
xdg-open "`cat "$1"`"

Sau đó, bạn chỉ có thể chạy .linkcác tập tin của Wap được đánh dấu là có thể thực thi được thông qua bất kỳ phương tiện nào và nó sẽ mở liên kết trong trình duyệt. Dòng lệnh, GUI nhấp đúp chuột, bất cứ điều gì bạn thích.

$ echo 'http://superuser.com/questions/986527/how-to-create-a-hyperlink-file' > this-page.link
$ chmod +x this-page.link
$ ./this-page.link
[Browser opens…]

Tất nhiên bạn có thể thay đổi phần mở rộng và định dạng tệp theo cách bạn muốn, miễn là bạn thay đổi open-hyperlinktập lệnh cho phù hợp. Ngay cả .lnkcác tập tin Windows !

Tất nhiên kernel của bạn phải có sẵn mô-đun đó và được kích hoạt, để nó hoạt động. (Tôi đã biên dịch nó.)

Kiểm tra tài liệu trên binfmt_misc, vì có nhiều khả năng hơn, ví dụ như khớp trên một mẫu thay vì phần mở rộng tệp.


0

Có rất nhiều câu trả lời giả sử bạn muốn thực hiện việc này bằng lập trình, nhưng nếu không thì hãy mở trang trong trình duyệt và kéo từ thanh địa chỉ đến cửa sổ trình duyệt máy tính để bàn hoặc tệp và nó sẽ tạo một liên kết.


1
Điều này được bác bỏ, nhưng điều này thực sự hoạt động!
Evi1M4chine

Những phiên bản Linux nào hoạt động trên? Nó có vẻ giống như một câu trả lời của Windows hơn là một câu trả lời của Linux. Chắc chắn trên Red Hat 6, kéo URL từ Firefox ESR 52.5.1 chỉ lưu một bản sao của trang vào đĩa thay vì tạo liên kết.
Đánh dấu gian hàng

@Mark Gian hàng Cách đây đã lâu nhưng tôi nghĩ tôi không nhận thấy câu hỏi này được gắn thẻ Linux. Ngoài ra, hồi đó tôi đã sử dụng Chrome và tôi cho rằng tôi cũng đã thử nghiệm trên IE. Tuy nhiên, điều này sẽ hoạt động trên Linux mặc dù nó có thể là một thứ crôm / crôm.
SilentVoid 17/03/18
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.