Linux系统删除find找到的文件或文件夹

当我运行得到结果文件后,需要删除当前目录下许多的中间文件夹:

find ./ -maxdepth 1 -type d -regex "./\w.*" -exec rm -rf {} +

各参数意义如下:
./ 是被搜索的文件夹
-maxdepth 1 表示仅搜索第一层目录
-type d 表示仅搜索文件夹类型数据,注意该参数要放-maxdepth参数后面,否则程序会有警告信息。
-regex "./\w.*" 使用正则表达式方式搜索数据,该正则表达式不会搜索当前目录下名称为 . 的目录,以防把当前目录直接删除
-exec rm -rf {} + 用于对搜索到的文件执行相应的操作,其中{}表示搜索到的文件路径。{}后面可以接空格加号或空格反斜线分号。

将当前目录下所有权限为600的普通文件变为644,

find ./ -type f -perm 600 -exec chmod 644 {} +

将当前目录下所有权限为700的文件夹变成755:

find ./ -type d -perm 700 -exec chmod 755 {} +

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据