Virtual Box 虚拟系统WindowsXP 在console 窗口执行rm 命令时,提示“rm: cannot remove `test123': Directory not empty”,针对此问题,记录一下。
test123 里面的文件可以正常删除,但是空的test123 却删不掉。
E:\2>rm -rf test123 -v
removed `test123/readme.txt'
removed `test123/readme.txt.bak'
rm: cannot remove `test123': Directory not empty
查看rm 命令的使用说明,上述命令“rm -rf test123” 应该在遍历删除test123 里面的文件后再删除test123 文件夹才对。
E:\2>rm --help
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).-f, --force ignore nonexistent files, never prompt
-i prompt before every removal
-I prompt once before removing more than three files, or
when removing recursively. Less intrusive than -i,
while still giving protection against most mistakes
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or
always (-i). Without WHEN, prompt always
--one-file-system when removing a hierarchy recursively, skip any
directory that is on a file system different from
that of the corresponding command line argument
--no-preserve-root do not treat `/' specially
--preserve-root do not remove `/' (default)
-r, -R, --recursive remove directories and their contents recursively
-v, --verbose explain what is being done
--help display this help and exit
--version output version information and exitBy default, rm does not remove directories. Use the --recursive (-r or -R)
option to remove each listed directory, too, along with all of its contents.To remove a file whose name starts with a `-', for example `-foo',
use one of these commands:
rm -- -foorm ./-foo
Note that if you use rm to remove a file, it might be possible to recover
some of its contents, given sufficient expertise and/or time. For greater
assurance that the contents are truly unrecoverable, consider using shred.Report rm bugs to bug-coreutils@gnu.org
Report Cygwin bugs to: cygwin@cygwin.com
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
Report rm translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'rm invocation'
因此,并不是命令不对。
在Virtual Box 下的Windows 7 系统下,执行上述命令,可以正常。
D:\vm\2>rm -rf test123 -v
removed directory 'test123'
因此,基于以上对比,不是Virtual Box的问题,怀疑是WindowsXp 系统设定的问题。
在WindowsXp 下使用“rmdir test123” 可以删除test123 这个空文件夹。
E:\2>rmdir test123 -v
目錄不是空的。
系統找不到指定的路徑。E:\2>rm test123/*
E:\2>rmdir test123