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

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

1
lnは何の略ですか?
Linuxでは、lnコマンドを使用してリンクを作成できます。 $ touch foo $ ln -s foo foo_link $ ls -l lrwxrwxrwx 1 cklein cklein 3 May 29 16:11 foo_link -> foo の「l」はln「link」の略ですが、「n」は何の略ですか? 何のln略ですか?
17 symlink  ln 


3
「ls」リストで「l」とはどういう意味ですか?
ls -adl .*いずれかのディレクトリで実行すると、次のリストを含むファイルが取得されます。 lrwxrwxrwx 1 user group 43 Jul 3 16:25 .#filename.py -> person@computer.edu.4018:1372874769 ファイル名とURLに見えるものは赤で強調表示されます。どういうl意味lrwxrwxrwxですか?これはどのようなファイルですか?
17 ls  symlink 

3
ディレクトリターゲットにリンクしたシンボリックリンクを置き換えます
Tomcatサーバーを7.0.19から7.0.20にアップグレードしたい。 私はすでにln -s apache-tomcat-7.0.19 tomcat7前にしたので、次のコマンドを使用して新しいターゲットにリンク tomcat7する必要がありますがln -s --force apache-tomcat-7.0.21 tomcat7、期待どおりに機能しませんでした:tomcat7/apache-tomcat-7.0.21既存のtomcat7シンボリックリンクを新しいターゲットに置き換える代わりにシンボリックリンクを作成しました。 例 # mkdir v1 v2 # ln -s v1 v # ln -s v2 v # ll v* lrwxrwxrwx. 1 root root 2 Sep 5 16:02 v -> v1 v1: total 0 lrwxrwxrwx. 1 root root 2 Sep 5 16:02 …

8
シンボリックリンクを無視するディレクトリのlsコンテンツ
シンボリックリンクを表示せずに、すべてのコンテンツ(ファイルおよびサブディレクトリ)を一覧表示するディレクトリがあります。LinuxでGNUユーティリティを使用しています。lsバージョンは8.13です。 例: 完全なディレクトリリスト: ~/test$ ls -Gg total 12 drwxrwxr-x 2 4096 Jul 9 10:29 dir1 drwxrwxr-x 2 4096 Jul 9 10:29 dir2 drwxrwxr-x 2 4096 Jul 9 10:29 dir3 -rw-rw-r-- 1 0 Jul 9 10:29 file1 -rw-rw-r-- 1 0 Jul 9 10:29 file2 lrwxrwxrwx 1 5 Jul 9 10:29 link1 …
16 ls  symlink  recursive 

5
シンボリックリンクがループするかどうかを決定するアルゴリズムはありますか?
Unixシステムは通常、1つのパスルックアップで通過するシンボリックリンクの数に制限があるため、シンボリックリンクループまたは非常に多くのシンボリックリンクを含むパスに直面すると、エラーになります。しかし、Unixがたどりつくよりも多くのリンクが含まれている場合でも、特定のパスが何かに解決するか、ループを含むかを実際に決定する方法はありますか?または、これは正式に決定できない問題ですか?また、決定できる場合、妥当な時間/メモリで決定できますか(たとえば、ファイルシステム上のすべてのファイルにアクセスする必要はありません)。 いくつかの例: a/b/c/d where a/b is a symlink to ../e and e is a symlink to f and f is a symlink to a/b a/b/c/d where a/b/c is a symlink to ../c a/b/c/d where a/b/c is a symlink to ../c/d a/b/c/d where a/b/c is a symlink to /a/b/e where a/b/e …

2
ディレクトリを指すシンボリックリンクを作成するために使用できるべき等べきコマンドは何ですか?
ディレクトリへのシンボリックリンクを作成するシェルスクリプトにコマンドを配置したいのですが、このスクリプトは何度も実行される可能性があるため、以降の呼び出しでは、コマンドは何も変更しません。 ディレクトリ構造は次のとおりです。 % tree /tmp/test_symlink /tmp/test_symlink ├── foo └── repo └── resources └── snippets ├── php.snippets ├── sh.snippets ├── snippets.snippets ├── sql.snippets └── vim.snippets foo/ディレクトリを指すスニペットと呼ばれるシンボリックリンクを作成したいと思います/tmp/test_symlink/repo/resources/snippets。 だから私は実行します: % ln -sfv /tmp/test_symlink/repo/resources/snippets /tmp/test_symlink/foo/snippets '/tmp/test_symlink/foo/snippets' -> '/tmp/test_symlink/repo/resources/snippets' 望ましい結果が得られます。 % tree /tmp/test_symlink /tmp/test_symlink ├── foo │ └── snippets -> /tmp/test_symlink/repo/resources/snippets └── repo └── resources …

5
重複ファイルを見つけて、それらをシンボリックリンクに置き換えます
特定のディレクトリ内で重複ファイル(名前が異なる場合でも)をチェックし、それらを最初の出現を指すシンボリックリンクに置き換える方法を見つけようとしています。私は試しましたfdupesが、それらの重複をリストするだけです。 それがコンテキストです:私は自分の好みに合わせてアイコンテーマをカスタマイズしていますが、親フォルダー内の名前や場所が異なっていても、さまざまな目的に使用されていても、多くのアイコンは基本的に同じであることがわかりました画像。1つだけが本当に必要な場合、同じ修正を20回または30回適用することは冗長であるため、1つの画像のみを保持し、他のすべてをシンボリックリンクしたいと思います。 例として、fdupes -r ./ディレクトリ内で実行testdirすると、次の結果が返される場合があります。 ./file1.png ./file2.png ./subdir1/anotherfile.png ./subdir1/subdir2/yetanotherfile.png この出力を考えるfile1.pngと、元のファイル名をすべて維持しながら、ファイルのみを保持し、他のすべてを削除し、それらを指すシンボリックリンクに置き換えたいと思います。そのfile2.pngため、その名前は保持file1.pngされますが、複製ではなくへのリンクになります。 これらのリンクは絶対パスを指すのではなく、親testdirディレクトリからの相対パスである必要があります。すなわち、ではなくをyetanotherfile.png指すよう../../file1.pngになります/home/testuser/.icons/testdir/file1.png GUIとCLIが関係するソリューションの両方に興味があります。使用することは必須ではありませんfdupesが、これは私が知っているツールであるため、引用していますが、他のツールを使用するソリューションも受け入れています。 これらすべてを処理するbashスクリプトを作成するのはそれほど難しくないはずですが、自分で作成する方法を見つけるのに十分な専門家ではありません。

2
sshfsはSFTPサーバーからのシンボリックリンクを解除します
シンボリックリンクで作業できるように、SSHFS経由でリモートSFTPパスをマウントする方法を知っている人はいますか?これを行うと、作成したすべてのシンボリックリンクは間違ったファイル(リンクしたものではありません)を指します。興味のあるすべてのシンボリックリンクは相対(絶対ではない)なので、リモートマシンで表示されるとおりに表示されます理想的です。 デフォルトのマウントオプションでsshfsを使用すると、現在のディレクトリにある別のファイルへのシンボリックリンクを作成できません。 $ cd /mnt/path/to/sshfs/mount $ ln -s ./test ./test2 $ ls test2 lrwxrwxrwx 1 root webusers 11 Jul 3 09:11 test2 -> /test リンクターゲットは現在のディレクトリ(./test)にあるため、これは明らかに正しくありませんが、ここでは、sshfs /testが正しくないリンクを作成することがわかります。リンクターゲットは/mnt/path/to/sshfs/mount/testそうではありません/test。 transform_symlinkssshfsファイルシステムをマウントするときにオプションを追加すると、同じコマンドで代わりに相対リンクが表示されますが、それでも間違った場所を指します。 $ cd /mnt/path/to/sshfs/mount $ ln -s ./test ./test2 $ ls test2 lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test ここで./testは、現在のディレクトリにリンクしようとしましたが、代わりに../../../test3レベル上のリンクがありました! …
16 mount  symlink  sftp  sshfs 

2
シンボリックリンクのターゲットが特定のパスを指すことを確認する方法
bashスクリプト内で、ファイルが次の構文のシンボリックリンクであるかどうかを確認できることを知っています。 if [ -L $path ] そのパスが特定のパスにリンクされているかどうかをテストする方法を知っている人はいますか?たとえば、のターゲットがで$pathあるかどうかを確認し/some/whereます。
16 bash  shell  symlink 

2
pwdと/ bin / pwdの奇妙な違い
を使用して現在のディレクトリにシンボリックリンクを追加しましたln -s . aa。実行しcd aa、その後実行した場合pwd、応答はになり/home/sim/aaます。 しかし、実行する/bin/pwdと印刷されます/home/sim(現在のディレクトリは変更されていません)。 この違いはどこから来たのですか?
15 shell  symlink  pwd 

4
ディレクトリと相対パスへのシンボリックリンク
ディレクトリへの絶対パス(Blink)でシンボリックリンクを作成しました。たとえば次のツリーがあります。 $ ls -l /tmp/A total 0 lrwxrwxrwx 1 root root 6 Apr 3 12:27 Blink -> /tmp/B -rw-r--r-- 1 root root 0 Apr 3 12:27 foo $ ls -l /tmp/B total 0 -rw-r--r-- 1 root root 0 Apr 3 12:27 bar 次に/ tmp / Aに移動し、ディレクトリをBlinkに変更します。 $ cd /tmp/A $ …


1
シンボリックリンクされたパスでは機能しないのですか?
このコマンドを実行してfind $HOME/MySymlinkedPath -name "run*.sh"も何も起こらず、エラーも発生しません(「MySymlinkedPath」は、$ HOME以外の別のハードドライブへのシンボリックリンクパスです)。 これらも失敗します: find ~/MySymlinkedPath -name "run*.sh" find /home/MyUserName/MySymlinkedPath -name "run*.sh" 念のため、この存在しないパスは(もちろん)失敗するfind $HOME/MySymlinkedPathDUMMYTEST -name "run*.sh"ため、パスは見つかりますが(エラーが発生findしないため)、検索は実行されません。 これは、cd $HOME/MySymlinkedPath最初にこのようにパス参照を削除した場合にのみ機能しますfind -name "run*.sh"が、私のスクリプトには適していません。 追加情報: このコマンドは通常どおり機能しls $HOME/MySymlinkedPath/run*.sh、そこに行ってこれcd $HOME/MySymlinkedPathを実行するとls ..、結果は期待したものではありません-シンボリックリンクが配置されているパスのリスト-実際のパスのリストが返されます別のメディア/ハードドライブ!!! pwd -P /media/MediaIdentifier/RealPath pwd /home/MyUser/MySymlinkedPath 再思考: これは問題ですfindとls、または私のシステムと?またはそれは予想され、まったく問題ではない?? 私はUbuntu 12.10を使用しています。私がテストしたすべての端末で失敗するので、端末の「問題」ではないようです。
15 find  symlink  path 

1
ドットドット(..)とは何ですか?シンボリックリンクと動作が異なるのはなぜですか?
..(二重ドット)の性質を理解しようとしています。アクセス方法によって異なるターゲットを指しているようです。 例:- /outer/ middle/ inner/ inner --> ./middle/inner/ 今、に/outer/middle/inner/..つながり/outer/middle/ますが、シンボリックリンクからアクセスすると、に/outer/inner/..つながり/outer/ます。..ここには2つの異なるものがあるようです。 ..正確には何ですか?シンボリックリンク?ハードリンク?または、ディレクトリにアクセスするときにパスに応じて動的に生成されますか?または、シンボリックリンクに関する私の理解が間違っている可能性があります。 編集: その他の関連する観察 /outer/ middle/ file inner/ f --> ./../file inner --> ./middle/inner/ 今、私は/outer/inner/fそれを介してファイルにアクセスしようとすると動作します。しかし、それは/outer/inner/../fileファイルを指し示していないため、そうすべきではありません。ファイルはにあり/outer/middle/inner/..ます。これは上記の動作と矛盾するようです!?

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