需要帮助改进脚本

我有一组文件夹(L1N-L5N),我想从我的/ home / michael / documents / XXX复制到我的Dropbox文件夹。 目前,我使用了以下脚本:

#!/bin/sh cp -ra /home/michael/Documents/GeneralNetwork /GNI /home/michael/Dropbox/NetworkData cp -ra /home/michael/Documents/GeneralNetwork /L1N /home/michael/Dropbox/NetworkData cp -ra /home/michael/Documents/GeneralNetwork /L2N /home/michael/Dropbox/NetworkData cp -ra /home/michael/Documents/GeneralNetwork /L3N /home/michael/Dropbox/NetworkData cp -ra /home/michael/Documents/GeneralNetwork /L4N /home/michael/Dropbox/NetworkData cp -ra /home/michael/Documents/GeneralNetwork /L5N /home/michael/Dropbox/NetworkData 

这有效,但很差。

我也不确定为什么它会返回这个原因:

 cp: cannot stat '/GNI': No such file or directory cp: cannot stat '/L1N': No such file or directory cp: cannot stat '/L2N': No such file or directory cp: cannot stat '/L3N': No such file or directory cp: cannot stat '/L4N': No such file or directory cp: cannot stat '/L5N': No such file or directory 

我想过缩短它:

 cp -ra /home/michael/Documents/GeneralNetwork/L* 

或者其他一些通配符来拾取包含“L”的所有文件夹。 我想要的是将文件(和覆盖)复制到此目录中的文件夹,但我不能确定它们将属于上述文件夹名称方案。

什么是创建.sh文件以从… / GeneralNetwork / *复制everythig而不复制隐藏文件等的最佳方法? 我已经完成了../GeneralNetwork/。 它包括boot,bin,sys等。

cp:不能统计’/ GNI’:没有这样的文件或目录

那是因为空白:

cp读起来像这样:

 cp -ra /home/michael/Documents/GeneralNetwork /GNI 

该文件夹: /home/michael/Documents/GeneralNetwork需要复制到/GNI 。 但是/GNI没有文件夹,因此出错。


如果文件之间有空格,请将其放在引号之间:

"/home/michael/Documents/GeneralNetwork /GNI"

cp正在看到:

 /home/michael/Documents/GeneralNetwork 

有了引号,它将超越空白:

 cp -ra "/home/michael/Documents/GeneralNetwork /GNI" /home/michael/Dropbox/NetworkData 

每用户请求

如果我理解正确,你想复制/home/michael/Documents/GeneralNetwork

以及其中的一切。 是的,这是可能的,如下:

 cp -ra "/home/michael/Documents/GeneralNetwork /*.*" /home/michael/Dropbox/NetworkData