我有一组文件夹(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/* 中的所有内容而不复制隐藏文件等的最佳方法是什么?我已经完成了 ../GeneralNetwork/。它包括 boot、bin、sys 等。
答案1
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