0

触れることができない古いスクリプトを継承しました - 聞かないでください。場所にインストールされているソフトウェアを参照します/SuperSoft/SomeSoft/

購入後に作り直された新しいバージョンのソフトウェアは、その場所にインストールされます /usr/local/SomeSoft

私は、ルートレベルで次のソフトリンクを作成しようとしています:

ln -s SuperSoft/SomeSoft/ /usr/local/SomeSoft/

SuperSoftルート レベルでディレクトリを作成したくありません。これはできますか?

4

4 に答える 4

1

欲しくて手に入れるのが大変でした。このリンクを使用してください:

ln -s /usr/local/SuperSoft/ /SuperSoft/

lsこれで、次を使用して のコンテンツを参照できます/SuperSoft/SomeSoft

ls -al /SuperSoft/SomeSoft
于 2013-05-23T16:32:12.080 に答える
1

の最初の形式を探していますln:

SYNOPSIS
       ln [OPTION]... [-T] TARGET LINK_NAME   (1st form)

-sシンボリックリンクが必要なため、オプションとして使用します。これTARGETは、シンボリックリンクの「値」です。つまり、リンクが指し示すものです。はLINK_NAME、作成されるリンクの実際の場所です。/SuperSoft/SomeSoftしたがって、そのポイントにシンボリックリンクを作成するに/usr/local/SomeSoftは、次のようにします。

ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft

長いリストでは次のようになります。

$ ls -l /SuperSoft/SomeSoft
lrwxrwxrwx 1 user group 18 May 23 13:43 /SuperSoft/SomeSoft -> /usr/local/SomeSoft

したがって、新しいバージョンのソフトウェアを通常どおり にインストールできます。/usr/local変更できない既存のスクリプトは/usr/local、アクセスしようとするとポイントされます/SuperSoft/SomeSoft

この方法では、 というディレクトリが存在することを前提としていることに注意してください/SuperSoft。これが選択肢にならない場合 (または単にやりたくない場合) は、( )/SuperSoftを指すシンボリック リンクを作成できます。ただし、あまりきれいではないので、これはお勧めしません。/usr/localln -s /usr/local /SuperSoft/Supersoft/SomeSoft/usr/local/SomeSoft

アップデート:

/SuperSoftシンボリックリンクにする別の方法は次のとおりです。

mkdir /usr/local/SuperSoft
ln -s /usr/local/SuperSoft /SuperSoft
ln -s /usr/local/SomeSoft /SuperSoft/SomeSoft

いずれにせよ、 へのリンクを格納するディレクトリが必要/user/local/SomeSoftです。

于 2013-05-23T17:47:58.380 に答える
1

ファイルシステムの 2 つの部分に同じファイルを配置することも、mount を使用して行うことができます。

Linuxの「man mount」から:

          Since Linux 2.4.0 it is possible to remount  part  of  the  file
          hierarchy somewhere else. The call is
                 mount --bind olddir newdir
          or shortoption
                 mount -B olddir newdir
          or fstab entry is:
                 /olddir /newdir none bind

          After  this  call the same contents is accessible in two places.
于 2013-05-23T17:31:37.047 に答える
0

いいえ、ディレクトリ パスであるシンボリック リンクを作成することはできません。シンボリック リンクは、通常のディレクトリ内の単なるエントリであるため、すべての通常の命名規則に準拠する必要があります。

「/SuperSoft/SomeSoft」というシンボリック リンクが必要な場合は、「/SuperSoft」が存在する必要があります。ディレクトリでも、他の場所へのシンボリックリンクでもかまいませんが、何かでなければなりません。

/ に新しいディレクトリを作成することを絶対に避けたい場合は、適切なディレクトリ/シンボリックリンク/etc で偽の / を作成し、そこでスクリプト chrooted() を実行できます。しかし、それはただ 1 つのディレクトリを作成するよりも多くのセットアップです。

于 2013-05-23T19:32:18.313 に答える