ファイル/ディレクトリ自体を削除せずにrmハードリンク

ファイル/ディレクトリ自体を削除せずにrmハードリンク

ハードリンクを作成するとします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コンテンツ(すべての名前で)。

また見なさい:ディレクトリハードリンクを強制的に作成しますか?

おすすめ記事