Shell脚本:使用通配符(*)将文件从一个文件夹复制到另一个文件夹

时间:2016-11-11 16:49:11

标签: shell zsh

一个非常简单的问题,但困扰我。我想将一个文件夹中的所有文件复制到shell脚本中的另一个文件夹中。像这样:

#!/bin/sh
cp data/* /tmp/data

但得到了error: zsh:1: no matches found: data/*

阅读stackoverflow上的各种帖子,例如:Copying files with wildcard (*) to a folder in a bash script - why isn't it working? 我试过了:

cp "data"/* /tmp/data
Error: zsh:1: no matches found: data/*
cp -r data /tmp/data
Error cp: cannot stat `data': No such file or directory

我可以验证数据文件夹包含文件,并且我在父目录数据文件夹中。如果我在脚本中执行ls data,则会正确打印它的内容。

有人可以帮忙吗?我正在使用zsh。

2 个答案:

答案 0 :(得分:1)

我认为您要查找的命令可能是cp -r data /tmp/。它将在data中创建/tmp/目录。

答案 1 :(得分:0)

$ cp "data/*" /tmp/data

对我有用。