![需要知道 rm -f 在 unix 中的用法以及如何在 dos 中实现](https://linux22.com/image/1212112/%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%20rm%20-f%20%E5%9C%A8%20unix%20%E4%B8%AD%E7%9A%84%E7%94%A8%E6%B3%95%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%9C%A8%20dos%20%E4%B8%AD%E5%AE%9E%E7%8E%B0.png)
rm -f /obi/u01/informatica/v711/pmserver/SrcFiles/coe/aone/AccessOne_Daily_Input.xml
它在unix中的用途是什么以及在dos中的可能实现是什么?
答案1
它只是强制删除文件,即使它是只读的。
del /f filename
与 Windows 命令 shell 大致相同。
答案2
rm -f <filename>
如果存在,则删除<filename>
,即使它对当前用户来说是只读的。如果<filename>
不存在,则rm -f <filename>
默默返回成功。如果尝试删除<filename>
导致权限错误或是<filename>
一个目录,rm
则将退出并显示错误消息。请参阅POSIX.1-2008 Shell 和实用程序:rm。
这在一次性情况下很有用,例如您想要确保某个特定文件不存在。rm -f
如果文件不存在,它将默默地成功;如果只读文件已经存在,它将尝试删除它。它使您不必先检查文件是否存在或启用文件的写权限位。这使得它在Makefile常规clean
目标因为您想确保删除所有构建的文件,而不必在每次rm
调用时都放置条件 shell 代码。
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>
答案3
rm -f 强制删除文件。如果您需要删除特定文件夹中的所有内容(包括文件夹内的文件夹),则需要在 unix 中执行 rm -rf。
答案4
如果您熟悉 UNIX 命令,则可以使用 Windows 中的 UNIX 命令 shell 模拟器,我使用的模拟器称为 CYGWIN: