Mat*_*ley 1282
# this works
rm foo
# versus
rm foo/
Run Code Online (Sandbox Code Playgroud)
基本上,您需要告诉它删除文件,而不是删除目录.我认为由于C库对待每个库的方式不同rm
而rmdir
存在差异和存在.
无论如何,第一个应该工作,而第二个应该抱怨foo是一个目录.
如果它不能如上所述,那么检查您的权限.您需要对包含目录的写入权限才能删除文件.
Joe*_*ips 828
使用"unlink"命令并确保不在最后使用/
$ unlink mySymLink
Run Code Online (Sandbox Code Playgroud)
unlink()从文件系统中删除名称.如果该名称是文件的最后一个链接,并且没有进程打开该文件,则该文件将被删除,并且其使用的空间可供重用. 如果名称是文件的最后一个链接,但任何进程仍然打开文件,则文件将保持存在,直到引用它的最后一个文件描述符关闭为止.
我认为如果我正确阅读它可能会有问题.
如果名称引用符号链接,则删除该链接.
如果名称引用套接字,fifo或设备,则删除其名称,但打开该对象的进程可以继续使用它.
https://linux.die.net/man/2/unlink
Ste*_*e K 17
rm应该删除符号链接.
skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$
Run Code Online (Sandbox Code Playgroud)
小智 15
使用rm symlinkname
但不要在末尾包含正斜杠(不要使用:) rm symlinkname/
.然后会询问您是否要删除符号链接,y
以回答是.
Jos*_*hua 12
假设它实际上是一个符号链接,
$ rm -d symlink
Run Code Online (Sandbox Code Playgroud)
它应该弄清楚,但是因为它不能我们启用潜在的代码,这个潜在的代码用于另一个不再存在的情况,但恰好在这里做正确的事情.
假设您的设置类似于:ln -s /mnt/bar ~/foo
,那么您应该能够rm foo
毫无问题地执行 a 。如果不能,请确保您是该文件的所有者foo
并且有权写入/执行该文件。删除foo
不会触及bar
,除非您递归地执行此操作。
归档时间: |
|
查看次数: |
924717 次 |
最近记录: |