我很难用find命令编写简单的脚本。我想在某个目录中删除给定大小的文件。我希望能够指定文件的名称(如Efficiency_ *)和要删除的文件的大小。我试过以下脚本:
#!/bin/bash
CD=($pwd)
find $CD -name $1 -size $2 -delete
我从正确的目录运行它,如下所示:
/path/to/directory/script.sh 'Efficiency_*' '-500c'
但它不起作用。
这样做的正确方法是什么?
答案 0 :(得分:4)
您不需要CD
变量,只需使用.
来引用当前目录。
其他变量需要引用。否则,shell将展开通配符,而不是将其传递给find
。
#!/bin/bash
find . -name "$1" -size "$2" -delete
一般情况下,除非有特殊原因,否则应始终引用变量。
答案 1 :(得分:1)
问题是你给CD变量的价值。在Bash脚本中,您有两种不同的方法可以将程序调用的输出分配给变量...
# method 1
CD=`pwd`
# method 2
CD=$(pwd)