GNU/Linux >> Linux の 問題 >  >> Linux

ディレクトリへのシンボリックリンクを削除する

# this works:
rm foo
# versus this, which doesn't:
rm foo/

基本的に、ファイルを削除するように指示する必要があります 、ディレクトリを削除しない . rm の違いだと思います と rmdir C ライブラリがそれぞれを処理する方法が異なるため、存在します。

いずれにせよ、最初のものは機能するはずですが、2 番目のものは foo がディレクトリであることに文句を言うはずです。

上記のように機能しない場合は、権限を確認してください。ファイルを削除するには、格納ディレクトリへの書き込み権限が必要です。


「リンク解除」コマンドを使用して、しないことを確認してください 末尾に / を付ける

$ unlink mySymLink
<ブロック引用>

unlink() は、ファイル システムから名前を削除します。 その名前がファイルへの最後のリンクであり、ファイルを開いているプロセスがない場合、ファイルは削除され、使用していたスペースは再利用できるようになります。 名前がファイルへの最後のリンクであったが、プロセスがまだファイルを開いている場合、そのファイルは、それを参照している最後のファイル記述子が閉じられるまで存在し続けます。

正しく読んでいれば、これは問題があると思います.

<ブロック引用>

名前がシンボリック リンクを参照している場合、そのリンクは削除されます。

名前がソケット、fifo、またはデバイスを参照している場合、その名前は削除されますが、オブジェクトを開いているプロセスは引き続きそれを使用できます。

https://linux.die.net/man/2/unlink


Linux
  1. Javaファイルマネージャー

  2. 名前がファイルリストの行と一致しないディレクトリ内のすべてのファイルを削除しますか?

  3. ディレクトリサイズの計算の違いは?

  1. Globbedファイル名へのリダイレクトが失敗しますか?

  2. wget:ダウンロードしたファイル名

  3. Bash:そのようなファイルやディレクトリはありませんか?

  1. sys/types.h:そのようなファイルまたはディレクトリはありません

  2. Linux での I/O エラー:root としてディレクトリを削除できません

  3. \ という名前のファイルまたはディレクトリを削除するにはどうすればよいですか?