代码之家  ›  专栏  ›  技术社区  ›  Suzie

如何将命令行参数与bash脚本中的find一起使用?

  •  0
  • Suzie  · 技术社区  · 8 年前

    我很难使用find命令编写简单的脚本。我想删除某个目录中给定大小的文件。我希望能够指定要删除的文件的名称(如Efficiency\*)和大小。我尝试了以下脚本:

    #!/bin/bash
    CD=($pwd)
    find $CD -name $1 -size $2 -delete
    

    我正在从正确的目录运行它,如下所示:

    /path/to/directory/script.sh 'Efficiency_*' '-500c'
    

    但它不起作用。

    正确的方法是什么?

    2 回复  |  直到 8 年前
        1
  •  4
  •   Barmar    8 年前

    你不需要 CD 变量,仅使用 . 以引用当前目录。

    需要引用其他变量。否则,shell将扩展通配符,而不是将其传递给 find .

    #!/bin/bash
    find . -name "$1" -size "$2" -delete
    

    一般来说,除非有特殊原因,否则应该始终引用变量。

        2
  •  1
  •   OkieOth    8 年前

    问题是您给CD变量的值。在Bash脚本中,有两种不同的方法将程序调用的输出分配给变量。。。

    # method 1
    CD=`pwd`
    
    # method 2
    CD=$(pwd)