找回密码
 注册
查看: 3235|回复: 5

如何第归删除子目录下的特定文件?

[复制链接]
发表于 2008-1-15 21:30:55 | 显示全部楼层 |阅读模式
如题
比如说要删除/projects/下面所有子目录里的 *.tr*文件?
多谢。
发表于 2008-1-15 21:54:04 | 显示全部楼层
xargs
在使用find命令的- e x e c选项处理匹配到的文件时, f i nd命令将所有匹配到的文件一起传递给e x e c执行。但有些系统对能够传递给e x e c的命令长度有限制,这样在f i nd命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是x a rg s命令的用处所在,特别是与f i nd命令一起使用。

举例
删除数量比较多的文件
ls | xargs -n 20 rm -fr
ls当然是输出所有的文件名(用空格分割)
xargs就是将ls的输出,每20个为一组(以空格为分隔符),作为rm -rf的参数
也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了
回复 支持 反对

使用道具 举报

发表于 2008-1-15 22:14:37 | 显示全部楼层
find  /etc -type f -name *.con*  -exec rm  {} \;

先查看一下
find  /etc -type f -name *.con*  -exec ls -l  {} \;

或者用exec的安全模式
find  /etc -type f -name *.con*  -ok rm  {} \;
或者
find  /etc -type f -name *.con*  -exec rm -i {} \;

总之威力强大删错了别找我,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2008-1-15 22:16:43 | 显示全部楼层
啊,新学的果然不行
先看见后答出来
回复 支持 反对

使用道具 举报

发表于 2008-1-25 23:34:02 | 显示全部楼层
我曾经自己写过一个脚本:

  1. #!/bin/bash
  2. if [ $# == 1 ]; then
  3.     echo -ne "Deleting FILES including [$1] in the CURRENT directory ...\n"
  4.     for i in $(tree -a -f -i | grep "$1")
  5.     do
  6.       rm -f $i
  7.     done
  8. elif [ $# == 2 ]; then
  9.     echo -ne "Deleting FILES including [$1] in [$2] directory ...\n"
  10.     for i in $(tree -a -f -i $2 |grep "$1")
  11.     do
  12.       rm -f $i
  13.     done
  14. else
  15.     echo -ne "Arguments Error.\n"
  16.     echo -ne "Usage:\n"
  17.     echo -ne "\t$0 STRING\n"
  18.     echo -ne "\t$0 STRING DIRECTORY\n"
  19. fi
复制代码


用法:


  1. rm_sth.sh string directory
复制代码

删除 directory 目录下面文件名包含 string 字串的文件。

如果文件名中有空格就需要再做进一步判断。

[ 本帖最后由 zhy2111314 于 2008-1-25 23:38 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2008-2-11 22:53:54 | 显示全部楼层
我的比较简单:

  1. #!/bin/bash
  2. function proc()
  3. {
  4.         rm *.tr*;
  5.         for name in *; do
  6.                 if cd $name; then
  7.                         proc;
  8.                 fi
  9.         done
  10.         cd ..;
  11. }>/dev/null 2>&1
  12. cd /projects;
  13. proc;
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2022-8-18 00:48 , Processed in 0.106630 second(s), 15 queries .

© 2021 Powered by Discuz! X3.4.

快速回复 返回顶部 返回列表