linux - 根据文本文件中的部分名称将文件复制或移动到另一个目录

标签 linux bash shell command-line scripting

我想根据文本文件中的部分文件名将一些文件从目录 A 复制到目录 B

我尝试了下面的命令,但它不起作用

for fn in $(cat filename.txt); do find . -type -f -name '$fn*' \
    -exec rsync -aR '{}' /tmp/test2 \;

文件名的格式为 abcd-1234-opi.txtrety-4567-yuui.txt。我必须从文件名中 grep 数字,然后将这些文件复制到另一个文件夹,我在文本文件中有数字。

有人可以指导我吗?

最佳答案

如果我正确理解你的问题:

for file in $(<./example); do cp "${file}" /tmp/test2/; done

for file in $(<./example); do find . -type f -name ${file} -exec rsync -aR {} /tmp/test2/ \; ; done

关于linux - 根据文本文件中的部分名称将文件复制或移动到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462385/

相关文章:

bash - 使用更改后的提示 PS1 启动 bash 进程

python - 在 Red Hat 6 上安装 numpy?

windows - 将基于 Windows 斜杠 (/) 的参数从 bash 脚本传递给程序

json - jq 从 json 中选择动态项

linux - 在 Bash 中递归列出给定目录中的文件

java - 运行Shell脚本作为Spark作业的一部分

linux - 从两个文件中读取、匹配、替换模式并使用结果创建输出文件

linux - GIT 服务器的硬件要求(RHEL linux)

android - 启动 AVD 文件时在 Android 模拟器中找不到 `GLIBC_2.7' 错误

linux - 根据输入文件从 csv 中删除行