我尝试在目录中查找文件并将它们复制到其他地方,这是我的脚本:
#!/bin/bash
# fileSearch
array=(a b c d)
for var in array
do
find ~/ -name $var* -exec cp {} ./test/ \;
done
我做错了什么?他不会找到任何文件... 我认为它可能会带有引号。
谁能帮帮我?
谢谢
最佳答案
试试这个:
#!/bin/bash
# fileSearch
array=(a b c d)
for var in array
do
echo $var
done
输出:
array
换句话说,您只是循环遍历包含单个单词“array”的单词列表。正确的版本应该扩展数组,并添加一个$
-symbol(意思是引用变量):
#!/bin/bash
# fileSearch
array=(a b c d)
for var in ${array[@]}
do
find ~/ -name "$var*" -exec cp {} ./test/ \;
done
此外,引用变量也是一个好习惯,也就是说,每当您使用像 $var
这样的变量时,请改用 "$var"
。当您的变量包含应该被视为单个字符串的带空格(或其他“奇怪”符号)的字符串时,这可以防止出现许多问题。
关于linux查找文件并复制到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12423529/