我希望我的bash脚本将foo目录中的文件复制到baz目录中。
当我在终端中运行此命令时,它达到了我的期望:
cp -r /foo/. /baz
但是当我将其保存为bash脚本时:
#!/bin/bash
cp -r /foo/. /baz
并运行:
./script.sh
然后它意外地将foo目录本身复制到baz(而不仅仅是foo中的文件)。
我做错了什么?为什么会这样?如何修复bash脚本?
修改 - 糟糕的问题。我没有注意到我运行了我的脚本的旧版本。一切都按预期工作。答案仍然帮助我提供替代解决方案。
答案 0 :(得分:1)
将脚本内容更改为:
#!/bin/bash
cp -r /foo/* /baz
说实话,我不确定你为什么遇到这个问题。这对我来说可以。尽管如此,星号似乎更合适。你在运行哪个操作系统?
答案 1 :(得分:1)
请改用rsync
。它不会复制父目录:
rsync -r /foo /baz