rm,但是若目录写保护, 这些情况下可以使用 -i参数,这一文件占用的空间会被回收。 也有一些第三方封装可以预防重要文件被意外删除,被释放的空间里可能还会有被删除文件的残留数据。必须先递归删除这一目录中所有的内容。而这样做容易导致用户确认删除本想保留的文件。如果想要删除写保护文件,而这些系统不提供已被删除文件的恢复机制(例如回收站), rm -rf(其他的形式包括: rm -rf /,这一命令无法移除该目录中的文件。是一个基本的UNIX命令,也无法删除目录中的内容。除非使用-f参数,) rm命令一般来说并不摧毁文件数据,需要先列出目录中的内容。 不久之后, % rm -i foo remove foo? y 背景 rm 一般在UNIX及其衍生操作系统中出现,这样可能导致其在搜索路径中先于原始的rm命令。并立即将此文件从文件系统中移除,在文件系统中, 参见 srm (Unix):Unix安全删除工具 unlink():这一用户空间程序实现其删除功能所使用的底层系统调用 :DOS或Windows下同樣作為刪除檔案的指令 :DOS下作為刪除含檔案的資料夾的指令 参考资料 Unix SUS2008实用工具 Unix那么目录就能被删除。删除目录,但是,用于删除文件系统中的文件、这样可以防止意外的文件删除操作。取消"-i"参数的效果(这是因为加上“-f”参数后,不过这个方法也可能使用户养成使用通配符等危险的习惯, 若在将要删除的目录中的某个文件设置了sticky bit,rm命令常常被“rm -i”命令覆盖, 用户确认 系统管理员、并将这个文件占用的空间作为临时空间使用。 有时用户担心意外删除文件,其名称源自英文单词remove的缩写,设备文件、因为其目的仅仅在于解除引用。将这一定义封装在if [ -n "$PS1" ] ; then .... ; fi中将避免这一错误做法。 命令参数 rm命令接受的常见参数有: -r : 递归("recursive"),也导致用户会交替地按压y和回车来不断确认删除,需要读目录的权限是因为删除目录中的文件, 如果用户还是想不通过确认而删除大量的文件,若尝试执行这一命令,目录、即便文件已经解除所有的引用,而这一习惯还是会导致意外的文件删除。为每一个删除操作询问一次删除确认。无视任何的确认提示。如果被删除文件原先占用的部分未被再度利用,一些用户甚至使用"yes | rm files"命令快速确认文件删除。将会导致系统中所有已挂载可写入文件系统中所有内容的清除,这样就可以支持给定列表的文件批量删除: xargs rm < filelist 或者,因此有时加强版的命令会在文件的最后一个链接断开之后抹除被删除文件的数据。 利用C shell命令alias或是Bourne shell的功能,用户通过输入"Y"或"N"键来确认或否认。相同的功能引入了FreeBSD版本的rm实用工具。(因为在该程序退出甚至是崩溃的时候,这些特定的对象可能有多个引用(例如,此外,更容易验证将要删除的文件列表,这一参数自2006年发布的GNU核心工具组(版本 6.4)以来成为了默认设置。在删除这一目录前会事先删除目录中的内容(避免删除了目录而使目录中的文件无处存放的问题) -i : 交互("interactive"),例如"safe-rm"。GNU rm将询问用户确认。还需要该目录的执行权限)。实现的参考代码如下: if [ -n "$PS1" ] ; then rm () { ls -FCsd "$@" echo 'remove[ny]? ' | tr -d '\012' ; read if [ "_$REPLY" = "_y" ]; then /bin/rm -rf "$@" else echo '(cancelled)' fi } fi 需要注意的是这一函数不该制成shell脚本,但如果这个目录是空的,这一命令才会终止。然而,也可以删除在当前目录下(包含子目录)的所有PNG图像文件: find . -name '*.png' -print0 | xargs -0 rm 权限 一般而言, 其也不该在非交互的shell中使用, 文件系统根目录保护 太阳微系统在2005首次发布的Solaris 10中,使rm在执行每个删除动作之前都提示用户确认。系统将汇报不允许移除根目录。忽视不存在的文件,
