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

需要知道 rm -f 在 unix 中的用法以及如何在 dos 中实现
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:

http://www.cygwin.com/

相关内容