linux查找文件并复制到目录

标签 linux bash

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

#!/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/

相关文章:

linux - 当 ssh 连接到服务器时,如何禁用问候消息?

git - Bash PS1 设置 - 如何将当前文件夹恢复为终端标题

linux - openssl 未知选项错误

用于简单网络服务器的 c 自定义 netcat

java - 如何让我的目录为将由我的 Java 程序创建的脚本文件提供可执行权限?

java - 用于使用参数调用 Java 程序的 Linux shell 脚本

Python:Xlib——我如何提升(置于顶部)窗口?

Linux 脚本无法正常工作

linux - ACPI脚本,如何知道当前向用户显示的TTY?

bash - Anaconda 在 Red Hat 7.7 系统上安装失败