タグ付けされた質問 「symlink」

存在しない、または既存のファイルまたはディレクトリを参照する特別なタイプのファイル。シンボリックリンクの内容は、シンボリックリンクが指すファイルへのパスである任意の文字列で構成されます。パス名の解決中にシンボリックリンクが検出されると、ファイルに保存されている文字列を使用してパス名の解決が変更されます。

2
シンボリックリンクのターゲットは、宛先の親ディレクトリに相対的ですか?もしそうであれば、なぜですか?
私は次のファイル構造を持っています: build/ client/ –> index.js そして、cwdのクライアントディレクトリを参照するビルドディレクトリ内に「client」というシンボリックリンクを作成しようとすると // Fails $ pwd /home/user/ $ ln -s client build/client $ stat build/client/index.js stat: build/client/index.js: stat: Too many levels of symbolic links 上記のELOOPエラーが表示されます。ターゲットパスを宛先パスに相対するように変更すると、すべてが正常になります。 // Works $ pwd /home/user/ $ ln -s ../client build/client $ stat build/client/index.js stat: <outputs file stats> これは意図した動作ですか?その理由を説明してください...
14 symlink 


2
どうしてハードリンクはオリジナルと同じスペースを取るように見えるのですか?
こことこのページの周りのいくつかの良いQ&Aのおかげで、私は今リンクを理解しています。ハードリンクは同じiノードを異なる名前で参照し、コピーは異なる「ノード、異なる名前を持つ。プラスソフトリンクは元のファイル名とパスをiノードとして持っているので、ファイルが移動するとリンクが壊れます。 そこで、私はいくつかのファイル(以下の「saluton_mondo.cpp」)で学んだことをテストし、ハードリンクとソフトリンク、およびコピーを作成しました。 jmcf125@VMUbuntu:~$ ls -lh soft hard copy s*.cpp -rw-rw-r-- 1 jmcf125 jmcf125 205 Aŭg 27 16:10 copy -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 hard -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 saluton_mondo.cpp lrwxrwxrwx 1 jmcf125 jmcf125 17 Aŭg 27 16:09 soft -> saluton_mondo.cpp しかし、ハードリンクのサイズが元のコピーと論理的に同じであることに気づきました。ハードリンクと元のデータが同じiノードを共有し、ファイル名のみが異なる場合、ハードリンクは205バイトではなく、その名前のスペースのみを使用すべきではありませんか?または、元のファイルのサイズがls -lh返されますか?しかし、その後、ファイル名がどのスペースを取るかをどのように知ることができますか?ここでは、ハードリンクにはサイズがありません。それらのファイル名は元のファイル名と一緒に保持されていますか?ハードリンクのファイル名はどこに保存されますか?


3
特定のディレクトリ内のファイル/ディレクトリを指すすべてのシンボリックリンクを見つける方法
この質問へのまたはこのいずれかのあなたは(のは、それを呼びましょう与えられたディレクトリを指すシンボリックリンクを探す方法についての解決策を取得します(たとえば)/dir1私は、おそらく任意のファイル/フォルダの内側を指すシンボリックリンクに興味を持っていながら、) /dir1。 このようなディレクトリを削除したいのですが、他のディレクトリ(呼び出してみましょう)のように、安全に実行できるかどうか/dir2はわかりません/dir1。 さらに、絶対パスまたは相対パスを使用してこれらのシンボリックリンクを作成した可能性があります。私の唯一の助けは、チェックしたいシンボリックリンクがマウントされたファイルシステム上にあることを知っていることです/dir2。
14 symlink 

5
シンボリックリンクを見つけるために「realpath」を取得するにはどうすればよいですか?
私はbashシェルとしてMacOSXを使用しています。このように作成されたシンボリックリンクがあります。 ln -s /usr/bin/python python2 python2を使用するパッケージがあり、現在の作業ディレクトリに/usr/bin/python実際にpython2であるシンボルリンクを作成したい。python2コマンドラインからを実行すると、次のエラーが表示されます。 python2: realpath couldn't resolve "/usr/bin/python2" しかし、このように呼び出すと./python2、パスが正しく解決されます。私PATHは.それを持っています。実際、テスト用に変更するだけ.で済みます。 どうすれば解決できますか?ありがとう! 環境 下記の提案された解決策の多くは私にはうまくいきません。私は、人々がテキストの海にdrれないように、できるだけ集中して簡潔に私の質問を蒸留しようとしましたが、明らかに、より多くの背景を提供する必要があります。 gitからクローンを作成したパッケージで開発しようとしています。元のパッケージはgit-multimail、Linuxの一部のバリアントで開発されました(Ubuntuを推測しています)。MacOSXで可能な限り変更を加えずに使用できるように変更しようとしています。提案されたソリューションのいくつかが理想的ではない理由はここにあります: ルートとしてpython2、/ usr / bin /にシンボリックリンクを作成します。私はこれを必要としないソリューションを探しています。これは最初は明らかなオプションでしたが、ホストシステムを可能な限り変更しないソリューションが必要です。これが、現在の作業ディレクトリに一時シンボリックリンクを作成し、CWD(つまり.)をパスに追加し、終了時にこれを破棄する(つまり、シンボリックリンク)理由でした。 ラッパースクリプトを作成して、既存のPythonでPythonスクリプトを呼び出します。これに関する問題は、正しい実行環境を見つけるためにshebangに応じて、テストスイートの多くが実際のscript_filesを実行可能ファイルとして使用することです。これは、テストスイートをかなり編集することを意味します。このコンテキストでは(テストフレームワークのスニペットについては以下を参照)、すべての.pyファイルにラッパーを追加する必要があります。さらに、ユーザー/開発者は、使用しているシステムに応じてパッケージを使用するためのさまざまなルールを認識する必要があります(つまり、MacOSXでは、ラッパー経由で呼び出すか、明示的に呼び出すことなくpythonファイルを使用しないでください/usr/bin/python file.py)。 #! /bin/sh D=$(cd $(dirname "$0") && pwd) MULTIMAIL="$D/../git-multimail/git_multimail.py" POST_RECEIVE="$D/../git-multimail/post-receive" TESTREPO=$("$D/create-test-repo") HOME="$D" XDG_CONFIG_HOME="$D" GIT_CONFIG_NOSYSTEM=1 export HOME XDG_CONFIG_HOME GIT_CONFIG_NOSYSTEM cd $TESTREPO test_email() { REFNAME="$1" OLDREV="$2" NEWREV="$3" echo "$OLDREV" "$NEWREV" …
13 python  symlink 

3
/ usr / bin / vimへのシンボリックリンクを作成するにはどうすればよいですか?
make&make installソースからvimを実行した後/usr/local/bin、evim、rvim、viewなど、vimの多くのシンボリックリンクを見つけました... vim(1)manページには、「rvimは」「vimの-Z」などと同等であることを述べました。 今、私はln(1)自分自身とそのようなシンボリックリンクを作ることができますか?
13 vim  symlink  ln 

5
シンボリックリンクをシンボリックリンクとしてマシン間でコピーする方法は?
2つの同一のシステムがあるとします。最初のシステムでは、シンボリックリンクを作成しました。sftpを介してそのシンボリックリンクをコピーしたい2番目のものとシンボリックリンクは同じように機能します(つまり、シンボリックリンクが/etc/にリンクしている場合、それをコピーした後、シンボリックリンクのみがコピーされ、シンボリックリンクのみがリンクされます(リンクされたファイルではありません)) これを行う方法/これができるかどうかに関するアイデアはありますか?私は唯一のシンボリックリンクをコピーしたい、何もありません。参照のみ。

2
tarコマンド-シンボリックリンクをスキップ
私はtarコマンドを次のように使用します。 tar -cvf protTests.tar protTests/* tarフォルダ内のすべてのファイル、protTests。ただし、これにはフォルダー内のシンボリックリンクが含まれていますが、これは望ましいものではありません。 すべてのシンボリックリンクを除外するコマンドラインオプションはありますか?
13 files  symlink  tar  wildcards 

1
シンボリックリンクをrm -rfすると、リンクが指すデータも消去されますか?
これは/home3私のシステムのディレクトリの内容です: ./ backup/ hearsttr@ lost+found/ randomvi@ sexsmovi@ ../ freemark@ investgr@ nudenude@ romanced@ wallpape@ これをクリーンアップしたいのですが、別のドライブを指すシンボリックリンクが原因で心配です。 私が言うならrm -rf /home3、それは他のドライブを削除しますか?
13 linux  symlink 


1
シンボリックリンクのアクセス許可はchmodで変更されません
シンボリックリンクを作成するたびに、次の権限でデフォルトで作成されるリモートLinuxマシンにアクセスできます。 lrwxrwxrwx たとえば、シンボリックリンクのアクセス許可(つまり、リンクが指すパスではない)を変更しようとした場合: chmod g-w my_symbolic_link chmod 正常に実行されます(エラーメッセージは出力されません)が、アクセス許可を再度確認しても同じままです(lrwxrwxrwx)。 マシン管理者からの連絡を待っていますが、これが正常な動作なのか、それともボックス固有の動作なのか疑問に思っていました。

3
perl -iをシンボリックリンクでなくする方法はありますか?
私の友人は、あなたがそうするなら: perl -pi.bak -e 's/foo/bar/' somefile 「somefile」が実際にシンボリックリンクである場合、perlはドキュメントが行うと言っていることを実行します。 入力ファイルの名前を変更し、元の名前で出力ファイルを開き、その出力ファイルをprint()ステートメントのデフォルトとして選択することにより、これを行います。拡張子が指定されている場合、その拡張子を使用して、古いファイルの名前を変更し、バックアップコピーを作成します[...] これにより、変更されていない実ファイルを指す新しいシンボリックリンク "somefile.bak"と、変更された新しい変更された通常ファイル "somefile"が作成されます。 多くの場合、シンボリックリンクをたどるのは望ましい動作です(たとえ.bakファイルの正しい場所があいまいなままであっても)。ラッパー内のシンボリックリンクをテストし、適切にケースを処理する以外に、これを行う簡単な方法はありますか? (sedそれが価値があることのために、同じことをします。)

3
リンクでリンクされたディレクトリに移動する
Iときcdリンクは、私の現在のパスではなく、へのリンクリンクディレクトリのパスよりも、リンクのパスが付いています。例えば ~/dirlinks/maths$ ls -l logic lrwxrwxrwx 1 tim tim 71 Jul 27 10:24 logic -> /windows-d/academic discipline/study objects/areas/formal systems/logic ~/dirlinks/maths$ cd logic ~/dirlinks/maths/logic$ pwd /home/tim/dirlinks/maths/logic ~/dirlinks/maths/logic$ cd .. ~/dirlinks/maths$ 現在のパスをリンクされたディレクトリのパスに変更して、リンクされたディレクトリの親ディレクトリも操作できるようにしたいと考えています。lsリンクされたディレクトリを見つけてそこcdに移動するリンクのほかに、それを達成するためのいくつかの簡単な方法は何ですか?たとえばcd、リンクに入った後、現在のパスをリンクされたディレクトリのパスにどのように変更しますか?

5
Linuxでシンボリックリンクの所有者を変更する理由
Linuxでは、シンボリックリンク(symlink)の所有者またはグループ所有者を変更できます。シンボリックリンクを介してファイルにアクセスするときにシンボリックリンクのアクセス許可が使用されないので、なぜ誰かがそれをしたいのかと思いました。 便利なのは1つの使用例だけだと想像できます。つまり、ユーザーがスティッキービットを使用してディレクトリ内のシンボリックリンクを削除できるようにします。 シンボリックリンクの所有者またはグループ所有者を変更することが役立つ他のケースを知っていますか?
12 symlink 

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