too*_*oop 17 unix linux bash shell
我想知道是否rm可以删除目录中的所有文件(但不删除子文件夹或子文件夹中的文件)?
我知道有些人使用:
rm -f /direcname/*.*
Run Code Online (Sandbox Code Playgroud)
但是这假定文件名有一个扩展而不是全部(我希望所有文件 - 有或没有扩展名被删除).
小智 35
虽然find允许您使用-exec rm {} \;可以使用的删除文件
find /direcname -maxdepth 1 -type f -delete
Run Code Online (Sandbox Code Playgroud)
它更快.使用-delete意味着-depth选项,这意味着在目录之前处理目录内容.
find /direcname -maxdepth 1 -type f -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
说明:
find 搜索其中的文件和目录 /direcname-maxdepth 限制它寻找直接子项的文件和目录 /direcname-type f 将搜索限制为文件-exec rm {} \;rm {}为每个文件运行命令(在替换文件的路径代替之后{}).您可以使用
find /direcname -maxdepth 1 -type f -exec rm -f {} \;
Run Code Online (Sandbox Code Playgroud)