Liên kết động


10

Tôi đã xây dựng ứng dụng của mình cho các kiến ​​trúc khác nhau và muốn tạo ra một "liên kết tượng trưng động" đưa tôi đến phiên bản phù hợp dựa trên một biến.

Nếu máy tôi hiện đang đăng nhập, là x86, thì liên kết tượng trưng sẽ đưa tôi đến bản dựng đó.

Một ví dụ chế giễu về những gì tôi muốn làm:

$ uname -i
x86_64

$ ls -ltr 
lrwxr-xr-x  1 dogbane gg     4 Feb 16 15:40 mylink -> @sys/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 x86_64/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 i386/

$ cd mylink

$ pwd -P
~/x86_64

Điều này có thể không?

Tôi biết tôi có thể sử dụng cd $(uname -i), nhưng muốn một cái gì đó đơn giản hơn.


Bạn có quen thuộc với OpenAFS không? Bởi vì nó sử dụng @sys theo cách chính xác, thậm chí sử dụng '@sys'. Nếu vậy, bạn đang tìm kiếm một giải pháp thay thế cho OpenAFS?
jsbillings

@jsbilling Tôi muốn biết nếu điều này là có thể trên một hệ thống tập tin tiêu chuẩn, không có AFS. Tôi đã từng làm việc trên AFS từ lâu và có thể làm điều này, do đó tôi đã hỏi.
dogbane

Tôi đã tìm ra nhiều. Tôi biết không có hệ thống tập tin nào khác có liên kết tượng trưng 'ma thuật' ngoài cài đặt vfs.generic.magiclinks của NetBSD. ( daemon-systems.org/man/symlink.7.html )
jsbillings

Có những môi trường như vậy, ví dụ như Ruby và Perl, để bạn có thể chọn phiên bản nào sẽ sử dụng khi bạn đang thử nghiệm mọi thứ. Bạn có thể tìm thấy một số nguồn cảm hứng tại rvm.io/rubies .
Jenny D

Câu trả lời:



2

Liên kết tượng trưng là tĩnh: hệ thống tệp chỉ lưu trữ một chuỗi và truy cập vào liên kết tượng trưng được chuyển hướng đến tệp có tên (liên quan đến vị trí của liên kết tượng trưng) là chuỗi đó.

Thật đơn giản để viết một hệ thống tập tin FUSE phơi bày các liên kết động như vậy, nhưng tôi không biết về một liên kết hiện có.


2

Tôi giả sử đây là nhị phân, vì vậy tôi sẽ thực hiện nó với một biến số PATH hơn là symlink.

PATH=$PATH:/base/$ARCH/bin.

Nếu bạn đang sử dụng một công cụ như cengine hoặc con rối. Một liên kết tượng trưng đến thư mục thích hợp có thể được tạo dựa trên kiến ​​trúc hệ thống.


1

Nếu bạn chỉ muốn một cú pháp đơn giản hơn để gõ hơn:

cd $(uname -i)

Bạn có thể đặt nó trong một biến như:

 s=`uname -i` 

trong tập lệnh đăng nhập của bạn, vì vậy bạn chỉ cần làm

 cd $s

Khi bạn muốn cd


0

symlink về cơ bản là một tệp có cờ đặc biệt chứa một số đường dẫn và đường dẫn này được hiểu là, vì vậy bạn không thể tạo một liên kết tượng trưng để trỏ đến các vị trí khác theo cách đó. Nhưng bạn vẫn có thể viết kịch bản sẽ chạy bản dựng phù hợp.

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.