タグ付けされた質問 「symbolic-link」

シンボリックリンク(「symlink」)は、システム内の同じドライブまたは別のドライブに存在する可能性のあるファイルまたはフォルダーへの参照です。シンボリックリンクを使用すると、ファイル自体が複数のディスクに分散したり、より便利な場所に再配置されたりする場合に、より論理的なファイルレイアウトを作成できます。

1
ファイルの場所を追跡する方法
私は自分のシステムの特定のフォルダのパスをできるだけ簡単で効率的な方法で追跡したいと思います。私の最初の仮定はシンボリックリンクを使用してこれを達成することができるということでした、しかし私はシンボリックリンクがどのように機能するかについて矛盾する情報を見ます。 多くの質問がどのようにして尋ねました シンボリックリンクターゲットへのパスを取得する (「使用などの回答とは greadlink ")しかし、私はどうやって手に入れるかを尋ねる質問を見つけることができません。 現在 なぜなら、私が見つけたすべての答えは 元の ターゲットパス しかし、現在のターゲットパスを見つける方法を探すとき、すべての答えは、ターゲットが移動した後にシンボリックリンクが「壊れた」ために不可能であると言っているようです。私は彼らがこのリンクが壊れていると考える理由を理解していません。シンボリックリンクBをターゲットAにしてからAを新しい場所に移動しても、シンボリックリンクBはまだ有効です。 Aが移動された後にAに変更が加えられても、Aの更新内容は表示されたままです。そしてPath Finderで、Bのコンテキストメニューから 'オリジナルを表示'を選択すると、 更新しました それでも、「greadlink B」は、現在の場所ではなく、Aの元の場所を指すだけです。 シンボリックリンクについては特に言及しましたが、私のより広くより重要な質問は、移動後にファイルの場所を取得する方法です。私がこれまで見つけた最良の解決策は使うことです find いくつかの方法で、しかし私が数個以上のファイルを追跡しようとしているときこれは遅すぎる。しかし、Path Finderのシンボリックリンクはターゲットの場所を効果的に追跡しているように見えるので、私はそれが可能でなければならないことを知っています。

1
Windowsのpython.exeへのcygwinシンボリックリンクの問題を予見できませんか?
簡単な質問です。私は窓の版python 2.7を持っています C:/Python27/python.exe cygwinのインストールも /usr/bin/python -> /usr/bin/python2.7.exe。これは、Windowsインストーラを使用してライブラリ/モジュールをインストールするときに、cygwinにはインストールしないことを意味します。私の解決策はシンボリックリンクを作成することでした、 /usr/bin/python -> /cygdrive/c/Python27/python.exe その後 alias python="python -i" それで私はcygwinで対話的な端末を手に入れます。 しかし、インターネット上で同様の問題を抱えている人が他にもたくさんいましたが、この解決策を推奨する人はいませんでした。私は何かが足りない?これは悪い考えですか?ありがとう。

1
私のドライブの一部を別のドライブにシンボリックリンクし、構造を同期させる(Link Shell Extension?)
私はもうすぐSSDとハードドライブをコンピュータにインストールします。これは128 GBのSSDと1 TBのハードドライブです。 私は次のようにSSDを使うつもりです:それはOSとほとんどのアプリケーションを格納します。 ハードドライブに関しては、実際のデータ(文書、画像、ビデオ、音楽、その他)を保存します。 私のドライブを視覚的に融合させるためのRAIDとソフトウェアのソリューションは、私の場合は生産性が低いため、多かれ少なかれ排除されています。しかし、私はまだ2つのドライブを使用して常にブラウズし、迷子になるという考えを非常に嫌います。あなたに考えを与えるために、私はx64システム上に2つのプログラムフォルダがあるという事実にとてもイライラします。 @allquixoticと何度か話し合って(実用的、簡単、そして同じ場所で)すべてをきれいに、実用的に、簡単にするために(私のための最善の解決策はSSDにすべてを置くことです)ただし、これらの「フォルダ」と「ファイル」の一部はハードディスクへのシンボリックリンクになります。 要するに、実際の使用では、C:\(SSD)が私が使用する唯一のドライブになり、D:\(HDD)はいくつかのファイルの実際のデータがあるところのマシン使用ダンプになります。 これまでのところ、すべてうまくいきます。ただし、ハードドライブを参照する必要がある状況もあります。そして一般的に、私は物事を整理するのが好きです。 しかし、シンボリックリンクは一方向にしか機能しません。 SSD(リンク)では、必要なことは何でもできるようになり、リンクは正常に保たれます。ただし、リンクは元の場所に残ります。 C:\ etc \ etc \ etc \ etc \ etc \ thing.txtからシンボリックリンクを作成し、それをD:\ etc \ etc \ etc \ etc \ etc \ thing.txtを指すようにします。それからC:\ etc \ etc \ etc \ etc \ etc \ thing.txtを移動してC:\ thing.txtにします。 C:\ thing.txtはD:\ etc \ …

1
Windows 10のmklink Program Filesフォルダ
私は私のOSを再インストールする必要があるときに(そして今朝)頻繁に起こるようにmklinkコマンドでシンボリックリンクを作成したいと思います。Windows10がインストールされているパーティションをフォーマットするだけです。 私の考えは、プログラムファイル、プログラムファイル(x86)、プログラムデータ、およびAppDataのためのいくつかのシンボリックリンクを作成することです。それぞれが異なるパーティションの対応するフォルダにリンクします。 私が気付いた問題は、これらのフォルダをいじることはおそらく良い考えではなく、そしてあまりうまく動作しないことです。 確かに、私はProgram Filesの中のフォルダーのためにリンクを作ることができました、しかしフォルダー全体についてはどうですか?そして、既存のファイルをすべてリンク先のパーティションに移動しますか? これを行う方法はありますか?危険ですか? これはおそらく良い方法ではないので、これをやろうとするより良い方法はありますか? もう少しパーティションを作成してドライブをマウントすることができたとしたら、それがどうなるかわかりません。 私はしばらく検索してきたので、これが他の人に見られない方法に基づいた良い考えではないと確信しています。すべてのプログラムでインストールディレクトリをカスタマイズすることができるわけではありません。

1
親ディレクトリ(..)に実行可能ファイルへのリンクを作成します
次のディレクトリを作成します。 parent/child childに移動し、という名前のファイルを作成しますchild(これは私の場合は実行可能ファイルです。違いがあるかどうかはわかりません)。 親に2つの「実行可能ファイルへのリンク」リンクを作成する必要があります。私はこれがうまくいくと思っていました: ln -sf ./child ../child1 ln -sf ./child ../child2 しかし、それは親ディレクトリに「フォルダへのリンク」(./child)を作成します。 次のように変更した場合: ln -sf -t.. ./child child1 ln -sf -t.. ./child child2 「ln: '../child':ディレクトリを上書きできません」というエラーが表示されます。 親ディレクトリから実行する場合(実行できませんが、これはMakefileレシピの一部です): ln -sf ./child/child ./child1 ln -sf ./child/child ./child2 できます。 ディレクトリやファイルの名前は変更できないことに注意してください。 現在のディレクトリが子である場合、どのようにリンクを作成しますか?

1
ルートが所有するディレクトリへのシンボリックリンクを作成するにはどうすればよいですか?
CertBotを使用してスタンドアロンの安全な証明書を設定し./public/certbot、サーバーのシンボリックリンク()を作成して、実際にサーバーのディレクトリツリーの下に証明書を含めることができるようにします(これはテストに使用するLinodeです開発のため、さまざまなサーバーソフトウェアを使用します)。証明書はの下/etc/letsencrypt/に正常にインストールされ、CertBotのドキュメントで指示されているように、インストールはを使用して行われたsudoため、すべてのファイルはルートが所有しています。サーバーが読み取れるシンボリックリンクを作成するために考えられるすべてを試しましたが、許可エラーが発生し続けます。現在、シンボリックリンクファイル、/etc/letsencrypt/liveドメインフォルダ、およびドメインフォルダ内のすべてのファイルがされているsudo chmodにDED777、およびなしsudoでsymlinkファイルを作成しようとしましたが、許可されませんでした。通常のユーザーとして、なしでcdsymlinkファイルとlsドメインフォルダーsudoにアクセスできるため、そこにあるすべてのものを見ることができますが、サーバーを起動すると(現在webpack-dev-server)、許可がありません。サーバーからのエラーメッセージは、パスが正しく解決されていることを示しています(アクセスエラーではなく、アクセスエラーが発生しているためENOENT)。 またpublic/certbot、同じエラーで、実際のフォルダーと証明書ファイルへの個別のシンボリックリンクを作成しようとしました。 Linuxの許可についての私の知識には、ある程度のギャップがあるはずです。これを回避する方法はありますか?ありがとう。

2
オペレーティングシステム間の共有ホームフォルダー
MacBook Proでハードドライブが再び半分になった後、デュアルブートをやり直すことにしました。私の目標は、OSX 10.6.8(インストール済み)、Windows 7 Home Premium、およびLinuxのフレーバー(現時点では未定)を使用したトリプルブートです。私は3つのオペレーティングシステム間の私の全体のホームフォルダのハードリンクを行うべきではないことを知っているが、私は、データのために、ドライブの最後に一つのパーティションをしたいと思います(つまりDocuments、Pictures、Movies、DownloadsおよびMusic)、およびそれらはちょうど私にリンクしていますホームフォルダ。 3つのOS間で必要なデータのドライブの最後にFAT32パーティションがあります。私が欲しいのは、これらの5つの「メイン」フォルダーをそこに配置し、各OSがそれぞれのカウンターパートをこれらのフォルダーに「リンク」することです。Windows 7では、ユーザーディレクトリのフォルダーを右クリックし、[ Properties->] Locationを選択してフォルダーを参照することで簡単に実行できます。Mac OSX 10.6でこれを実現するにはどうすればよいですか? EDIT @OliverSalzburg はApple StackExchangeでこの質問/回答に言及しましたが、役に立ちませんでした。そこで説明されているようにルートアカウントを有効にし、追加のパーティションにフォルダーを作成し(/Volumes/DATA/{foldername})、ルートとしてリンクを作成しようとしました(ln -s /Volumes/DATA/Movies /Users/luke/Movies)が、フォルダーの存在を通知し続けました。を削除し/Users/luke/Movies、上記のコマンドを繰り返しました。そうすると、「壊れたエイリアス」が表示されます。小さな矢印の付いた空白の用紙のように見え、エイリアスを修正または削除するように指示されます。私が欲しかったものではありません。 私の最終目標は、上記の5つのフォルダーの通常のパスが存在し、データがMacパーティションに保存されている場合とまったく同じように見えることです。

0
rsync --copy-linksを使用する場合、rsyncはシンボリックリンク名の変更を無視します
シンボリックリンクを使用して、ディスク全体のコンテンツを使用して「仮想」フォルダ/ファイルツリーを作成しています。本質的に混乱があり、スクリプトはファイル名などを緩めながら元の未編成ファイルへのシンボリックリンクを作成することにより、編成されたファイルツリーを作成します。これが完了したら、この「仮想」ファイルツリーをリモートサーバー--copy-linksパラメータでrsyncを使用します。 発生する問題は、rsyncがシンボリックリンク名の変更を完全に無視することです。たとえば、次のとおりです。 mkdir export # make a dir for export ln -s /file.jpg export/fileLink.jpg # create a link to file.jpg rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync with an export dir ls /tmp/rsyncExport/ fileLink.jpg # we find our file (not a symlink) with the symlink name. これまでのところは良いですが、リンク名を変更して再同期すると: rm export/fileLink.jpg …

1
find exec ubuntu 10.04を使用して、ファイルサイズで条件付きでシンボリックリンクを作成します。
私は面白い問題を抱えています。指定したサイズより大きいディレクトリ内のすべてのファイルに対して、単一のフォルダにシンボリックリンクを作成しようとしています。 明確にするために、これは例です: /Files /Large_Files /LargeFile1_symlink /LargeFile2_symlink /Folder1 /file_a /file_b /Folder2 /LargeFile1 /Folder3 /LargeFile2 /file_c これを達成するために私がこれまでに持っているものは、 find -size +102400 -exec ln -s $PWD/{} Large_Files/ \; ただし、この検索結果は ./LargeFile1 だから私のsymlinkコマンドは生成します ln -s /Files/Folder2/./LargeFile1 Large_Files/ 私の質問は、このコマンドが機能するように、ファイル名だけを切り離すためにbasenameコマンドを使用することは可能でしょうか?あるいは、スクリプトを書かずにこれを行う方法について誰かが提案をしているのでしょうか。それとも、スクリプトを書く例を教えてください。 私は今までスクリプトを書いたことがありませんが、私はJavaを知っていますが、Javaでこれらすべてを行う時間をかけたくありません。 助けてくれてありがとう! 編集:タグを追加する


3
CentOS - この状況でlnコマンドを使用する方法?
CentOSのログファイルのようなファイルを作成します。このログファイルが更新されると、ログファイルのコピーも更新されます。たぶん私はこのコマンドを使用します: ln -s logfile copy_of_logfile ログファイルの内容が追加されると、copy_of_logfileの内容も追加されます。それは問題ありませんが、logfileの内容が削除されると、copy_of_logfileの内容も削除されます。 logfileの内容が追加されたとき、それからcopy_of_logfileの内容も追加され、logfileの内容が削除されたときに、copy_of_logfileの内容が削除されないようにします。その方法を教えてください。

0
シンボリックリンクを変更する
シンボリックリンクを変更する方法はありますか? ln -fs a b これは重要ではありません。リンクが解除されて新しいシンボリックリンクが作成されているためです(どちらもアトミックではありませんが、別の話です)。 研究はこれが不可能であることを示唆している、しかし私がこれが事実でありそしてなぜこれが事実であるならば私は確かな答えを得たいと思う。 それが不可能な理由からすぐにはっきりしない場合は、それを可能にするために何が必要かを知りたいです。

1
Apacheがシンボリックリンクと一致しないディレクトリにアクセスしようとしています
私はそのようなシンボリックリンクを持っています: /home/site1/public_html/site2 これにより、site2_symlinkは次のように設定されました。 ln -s /home/site2/public_html/ site2 そして私は私のVirtual Hostsエントリでオンになっているシンボリックリンクをたどっています: <Directory / > Options FollowSymLinks AllowOverride None </Directory> しかし私は404を取得し、Apacheのerror_logは言う: File does not exist: /home/public_html/site2 編集シンボリックリンク名を変更しますが、結果に違いはありません


1
1つのファイルを子を含むすべてのサブディレクトリにリンクするシンボリックリンクを作成する方法
StackOverflowで誤ってこの質問をしたので、代わりにここで質問することを提案しました。 私はここで他の多くの投稿を読みました、そして、それらはすべて正常に答えられたように見えます、しかし、私はただ従うことができません。私はまだ非常に新しく、試行錯誤のアプローチを試みたくありません。それを修正できるかどうかわからないからです。ここが私です。 ホストのルートWebフォルダにある「php.ini」という名前のファイルがあります。このフォルダーは、サーバー上のすべてのフォルダーとサブフォルダーにも存在する必要があります。ホストは「サブフォルダーにシンボリックリンクを作成する」ことを提案しましたが、それは彼らの助けの範囲でした。方法を尋ねると、グーグルにグーグルするように言われました。だから私は..そして私は迷子になりました。これまでのところ私はこれを持っています: ln -s /path/to/htdocs/php.ini LINK-NAME しかし、これが正しいかどうかは実際にはわかりませんLINK-NAME。また、それがどういうものなのか、何をするのかわかりません。また、これがすべてのフォルダーとサブフォルダーにリンクを作成するかどうかわかりませんか?私はこのコマンドを入力するためにSSHを使用することになっているので、試してみる直前にそれを確認したいです。これが非常に基本的な知識(noob)の質問である場合、申し訳ありません。私の検索はすべて例を示しているだけで、それらの機能の説明はありません。 どうもありがとうございます!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.