1つのファイルを子を含むすべてのサブディレクトリにリンクするシンボリックリンクを作成する方法


0

StackOverflowで誤ってこの質問をしたので、代わりにここで質問することを提案しました。

私はここで他の多くの投稿を読みました、そして、それらはすべて正常に答えられたように見えます、しかし、私はただ従うことができません。私はまだ非常に新しく、試行錯誤のアプローチを試みたくありません。それを修正できるかどうかわからないからです。ここが私です。

ホストのルートWebフォルダにある「php.ini」という名前のファイルがあります。このフォルダーは、サーバー上のすべてのフォルダーとサブフォルダーにも存在する必要があります。ホストは「サブフォルダーにシンボリックリンクを作成する」ことを提案しましたが、それは彼らの助けの範囲でした。方法を尋ねると、グーグルにグーグルするように言われました。だから私は..そして私は迷子になりました。これまでのところ私はこれを持っています:

ln -s /path/to/htdocs/php.ini LINK-NAME

しかし、これが正しいかどうかは実際にはわかりませんLINK-NAME。また、それがどういうものなのか、何をするのかわかりません。また、これがすべてのフォルダーとサブフォルダーにリンクを作成するかどうかわかりませんか?私はこのコマンドを入力するためにSSHを使用することになっているので、試してみる直前にそれを確認したいです。これが非常に基本的な知識(noob)の質問である場合、申し訳ありません。私の検索はすべて例を示しているだけで、それらの機能の説明はありません。

どうもありがとうございます!


少し実験してみませんか?サブディレクトリのあるテストディレクトリでコマンドを実行するだけです。問題を完全に解決することはできませんが、うまくいけば「何LINK-NAMEが想定されているか」と「これがすべてのフォルダーとサブフォルダーにリンクを作成するかどうか」が謎にならないようになります。Plus man lnはあなたの友達です。「試す前にそれを確実に持っている」ということは、Linuxであなたを大きく引き離すことにはなりません。:)または、テストディレクトリを作成する方法に関する知識が不足していて、そこで発生する可能性のある混乱を整頓しているのでしょうか。これらのコマンドは、よく知っている:mkdircdcprm、rmdir`?私は判断していません。ただ尋ねる。
カミルマシオロウスキ

回答:


0

あなたはfindいくつかのパスのすべてのディレクトリでした

find path -type d 

そして、その上で実行する-exec(または-execdirより安全であると想定される)を見つける(冗長にするために)ln-vリンク先のフルパスがであると仮定/path/to/htdocs/php.ini

find path -type d -execdir ln -v -s /path/to/htdocs/php.ini '{}' ';'

または、findの出力を使用する-execか(nullで区切られた出力が役立つ場合があります/ )、bash / shスクリプトなどで使用する代わりに...-execdirxargs-print0-0


ただし、最初に、php.iniファイルが既に存在するかどうかを確認したい場合があります。

find path -name php.ini

または、多数の新しいphp.iniリンクを作成し、それらが実際に指しているものを確認したい場合は、

find path -name php.ini -execdir readlink '{}' ';'

または、大量のphp.iniファイルの作成を間違えた場合は、次のようにして削除できます。

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