linux查找文件并复制到目录

时间:2012-09-14 11:23:12

标签: linux bash

我尝试在目录中查找文件并将其复制到其他地方,这是我的脚本:

#!/bin/bash
# fileSearch

array=(a b c d)

for var in array
do
        find ~/ -name $var* -exec cp {} ./test/ \;
done

我做错了什么?他找不到任何文件...... 我想它可能会引用引号。

任何人都可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:3)

试试这个:

#!/bin/bash
# fileSearch

array=(a b c d)

for var in array
do
    echo $var
done

输出:

array

换句话说,你只是循环一个包含单个单词“array”的单词列表。正确的版本应扩展数组,并添加$ - 符号(表示引用变量):

#!/bin/bash
# fileSearch

array=(a b c d)

for var in ${array[@]}
do
    find ~/ -name "$var*" -exec cp {} ./test/ \;
done

引用变量也是一个好习惯,即,无论何时使用$var之类的变量,都要使用"$var"。当您的变量包含带有空格(或其他“奇怪”符号)且应被视为单个字符串的字符串时,这可以防止出现许多问题。