需要知道在unix中使用rm -f以及如何在dos中实现


3
rm -f /obi/u01/informatica/v711/pmserver/SrcFiles/coe/aone/AccessOne_Daily_Input.xml

它在unix中的用途及其在dos中的可能实现?


3
它不是DOS。 cmd.exe 是一个本机Windows应用程序。
grawity

1
也许OP仍然使用DOS。肯定有 DOS特有的问题。
Joey

1
好吧,它最初被标记为“windows”。
grawity

Answers:


18

它只是强制删除文件,即使它是只读的。

del /f filename

是Windows命令shell中的粗略等价物。


5
就像我讨厌乔恩一样,他是完全正确的。 +1。

2
你得到的每一次投票都会给你带来10点整数溢出:-D
derobert

2
幸运的是,他可以安全地在这里投票,因为他几乎没有接近溢出:-)
Joey

1

rm -f <filename> 删除 <filename> 如果它存在,即使它对当前用户是只读的。如果 <filename> 不存在, rm -f <filename> 默默地回归成功。如果试图删除 <filename> 导致权限错误或 <filename> 是一个目录, rm 将退出并显示错误消息。看到 POSIX.1-2008 Shell&amp;公用事业:rm

这在您想要确保特定文件不存在的一次性情况下非常有用。 rm -f 如果文件不存在,将默默成功;它将尝试甚至删除只读文件(如果已存在)。它使您不必首先检查文件是否存在或启用文件的写入权限位。这使得它非常有用 Makefile文件 传统的 clean 目标 因为您希望确保删除所有构建的文件,而不必在每个文件周围放置条件shell代码 rm 调用。

DEL 有一个 /F 导致的旗帜 DEL 继续删除您没有写入权限的文件。但是,如果您尝试删除不存在的文件,它仍会抱怨(不像 rm -f ):

C:\Users\binki>DEL /F nonexistent
Could Not Find C:\Users\binki\nonexistent

C:\Users\binki>rm -f nonexistent

C:\Users\binki>

也许有更好的方法,但我认为 rm -f 只有在帮助下才能复制行为 IF EXIST。因此,我建议 IF EXIST <filename> DEL /F <filename> 是最接近的 cmd 语法来复制行为 rm -f <filename>

C:\Users\binki>IF EXIST nonexistent DEL /F nonexistent

C:\Users\binki>touch existent& chmod u-w existent

C:\Users\binki>DEL existent
C:\Users\binki\existent
Access is denied.

C:\Users\binki>IF EXIST existent DEL /F existent

C:\Users\binki>ls -l existent
ls: existent: No such file or directory

C:\Users\binki>

0

rm -f强制删除文件。如果您需要删除特定文件夹中的所有内容,包括包含文件夹的文件夹,则需要在unix中执行rm -rf。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.