如何Unix rm目录中的所有文件

时间:2020-01-09 10:46:08  来源:igfitidea点击:

我如何在Unix之类的操作系统下rm(删除)名为个人文件的目录中的所有文件?
您需要使用rm命令删除指定的文件和目录。

rm的语法是:

rm file 
rm file1 file2 
rm wildcard-based-file-name-matching 
rm [options] filenames 

在此示例中,假设所有文件都位于当前目录中,则rm将删除名为file.txt,foo.txt和bar.txt的文件:

rm file.txt foo.txt bar.txt

*通配符

星号(*)通配符(也称为星号)可以代表所有文件名。
因此,要删除所有文件,请使用"*"通配符。
在此示例中,删除当前目录中的所有文件(不能删除警告文件,因此请注意以下命令):

rm *

要删除$HOME/personl-files中的所有文件,请执行:

rm $HOME/personl-files/*

-i(即交互式)选项传递给rm命令以提示用户进行确认,然后再删除每个文件和目录。

rm -i *

要删除所有* .doc文件(以.doc扩展名结尾的文件,请执行:

rm *.doc

以下内容将告诉rm命令删除当前目录中名称中包含字符串movie的所有文件:

rm *movie*

以下内容将告诉rm命令删除所有以小写字母z开头的文件。

rm z*

问号通配符

?(问号)用于精确匹配一个字符。
例如,三个问号(???)代表由三个字符组成的任何文件名。
在此示例中,rm命令将删除当前目录中所有名称(包括扩展名)正好三个字符的文件:

rm ???

以下内容将告诉rm命令删除当前目录中所有以字母z开头且长度为六个字符的文件:

rm z?????

以下内容将告诉rm命令删除当前目录中所有扩展名由两个字符组成的文件:

rm *.??

方括号通配符

方括号([])可以匹配方括号中包含的任何字符。
例如,以下命令将告诉rm命令删除当前目录中所有带有A,B和/或者C的文件:

rm *[ABC]*

以下命令将告诉rm命令删除其中包含数字(零到九)的所有文件,即文件名中至少一个数字:

rm *[0-9]*

以下内容将告诉rm命令删除所有以c或者h开头的扩展名的文件:

rm *.[ch]*

并且以下内容将告诉rm命令删除当前目录中的所有文件名,这些文件名包括镜像和后跟两位数字的数字:

rm images[0-9][0-9].png

更多例子

## Delete all perl files ##
rm *.pl
 
## Delete all c source code files ##
rm *.c
 
## Delete all c source code files only if name begins with a lower case letter a ##
rm a*.c
 
## Delete all files that have an .html or a .txt extension ##
rm *.html *.txt

如何从$HOME/personl-files /中删除所有文件和子目录?

使用以下rm命令语法:

rm -rf /path/to/dir/*
rm -rf $HOME/personl-files/*