一个非常简单的问题,但困扰我。我想将一个文件夹中的所有文件复制到shell脚本中的另一个文件夹中。就像这样:Shell脚本:使用通配符(*)将文件从一个文件夹复制到另一个文件夹
#!/bin/sh
cp data/* /tmp/data
,但得到error: zsh:1: no matches found: data/*
阅读计算器各个岗位,喜欢这里: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
我可以验证数据文件夹中包含的文件,而且我m在父目录数据文件夹中。如果我在脚本中使用ls data
,则其内容将被正确打印。
任何人都可以帮忙吗?我正在使用zsh。
运行脚本时,当前的工作目录是什么? (也就是说,如果你在调用'cp'之前调用'pwd',那么输出是什么? – chepner
你是如何运行脚本的?我很惊讶你在第1行遇到有关'data/*'的zsh错误当这是一个'sh'脚本,其中第一行是注释 –
@chepner当前目录是数据的父目录,就像我说过的,如果我在脚本的cp命令后面添加了'ls data',它会打印文件夹内容正确 – ruyuan