ハードリンクを作成するとしますln x y
。
リンクを作成した後、xからファイルを削除せずにyからリンクを削除する方法はありますか? yに対して操作を行いましたが、xも削除したようですrm -rf
。可能であれば、これを避けたいと思います。ハハ。
ベストアンサー1
$ echo 'hello' >name
$ ln name othername
$ ls -l
total 4
-rw-r--r-- 2 kk wheel 6 Jun 25 09:45 name
-rw-r--r-- 2 kk wheel 6 Jun 25 09:45 othername
$ cat othername
hello
$ rm name
$ ls -l
total 2
-rw-r--r-- 1 kk wheel 6 Jun 25 09:45 othername
$ cat othername
hello
1つのハードリンクを削除しながら他のハードリンクも削除する場合は、深刻な間違いを犯すことです。この場合、rm
またはを使用することは重要ではなく、rm -rf
どの名前が削除されるかは重要ではありません。
ハードリンクを削除すると、ファイル名の1つだけが削除されます。私の考えでは、rm -rf
これら2つの名前を削除する唯一の方法は、これら2つの名前と一致するファイル名globと一緒に使用するか、両方の名前を含むディレクトリを削除することです。
コメントを見ると、実際に次の項目へのハードリンクを生成するアプリケーションを使用しているようです。目次。特定の条件では、macOS HFS +ファイルシステムでこれが可能です。一般的に本物ハードリンクディレクトリを扱うのは面倒で、その使用は主にAppleのTimeMachineソフトウェアのようなものに制限されています。
関連Stackoverflow質問:OS Xでディレクトリハードリンクを生成するUnixコマンドは何ですか?
unlink
その質問に対する回答で述べたように、ハードリンクされたディレクトリを削除するrm -r
代わりに使用する必要があります。rm -r
コンテンツ(すべての名前で)。
また見なさい:ディレクトリハードリンクを強制的に作成しますか?