/var/www/html/target_dir/files..
,但不是
使用-r参数时的
/var/www/html/target_dir/local_dir/files..
#1 楼
scp具有-r参数。因此,请尝试使用:$ scp -r ~/local_dir user@host.com:/var/www/html/target_dir
-r参数的工作方式与cp中的-r arg相同,它将传输整个文件夹以及其中的所有文件和子目录。
评论
您的命令在/ var / www / html / target_dir中创建了local_dir目录,我的目标是仅复制文件。
–埃德加拉斯·卡尔卡(Edgaras Karka)
15年9月30日在8:25
抱歉,我理解错了。然后,只需重复该命令即可,但是像这样:$ scp -r〜/ local_dir user@host.com:/ var / www / html /然后根据需要重命名新目录。
–瘫痪
2015年9月30日在8:31
或$ scp -r〜/ local_dir / * user@host.com:/ var / www / html / target_dir随便什么。
–瘫痪
2015年9月30日在8:34
将通配符*更改为点。并且您将复制目录内容(包括任何点文件),而无需复制目录本身。 scp -pr〜/ local_dir /。 user@example.com:/ path / to / target_dir
–roaima
17年7月21日在22:25
不幸的是,使用。已因实施不当的scp“错误修正”而被破坏(请参见
– rivy
20-6-28在21:15
#2 楼
如果您的目标是从local_dir
传输所有文件,则*
通配符可以解决问题:$ scp ~/local_dir/* user@host.com:/var/www/html/target_dir
-r
选项的意思是“递归”,因此,当重新尝试传输整个目录或几个目录。从
man scp
:-r
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
因此,如果您在
local_dir
内有子目录,则最后一个示例仅传输文件,但是如果设置-r
选项,它将传输文件和目录。评论
1+因为您需要阅读接受的答案中的注释才能获得正确的答案,而本答案仅作直接解释。
–安德烈·克里斯托弗·安徒生
17年7月5日在10:01
#3 楼
将/.
附加到源目录将传输其内容,而不是目录本身。与通配符解决方案相比,此解决方案还将包括所有隐藏文件。$ scp -r ~/local_dir/. user@host.com:/var/www/html/target_dir
该解决方案的信用归roaima所有,但我认为应该将其发布为实际文件。答案,不仅是评论。
评论
不幸的是,此解决方案已被实施不当的scp“ bugfix”破坏(请参见
– rivy
20年6月28日在21:14
#4 楼
请执行以下步骤:复制目录
local_dir
及其所有子目录:scp -r ~/local_dir user@host.com /var/www/html/target_dir
仅复制
local_dir
的内容,而不复制目录local_dir
本身:scp -r ~/local_dir/* user@host.com /var/www/html/target_dir
请勿使用:
scp -r ~/local_dir/. user@host.com /var/www/html/target_dir
会引发错误(仅经过测试并收到以下错误):scp: error: unexpected filename: .
评论
我也收到意外的文件名错误。但是,使用通配符也不起作用,这是因为目录中包含的文件太多,导致扩展通配符时超出了命令的字符数限制。苹果系统
–理查德·基弗(Richard Kiefer)
20年1月8日在10:17
@RichardKiefer:您可以使用通配符吗?用*进一步隔离搜索结果,然后将其传递给scp。试试此链接,可能会有所帮助:通配符
–赛拉德·法拉兹·乌玛(Syed Faraz Umar)
20年1月14日在6:15
谢谢Syed,但我的意思是我实际上想定位文件夹中的所有元素,而不过滤任何元素。而且如果我的目录太多,则通配符将不起作用。
–理查德·基弗(Richard Kiefer)
20年1月14日在8:33
@RichardKiefer:我很抱歉,Richard,要复制所有文件,我们可以使用一个小的bash脚本。用途:ls -l | awk'{print $ 9}'并将所有输出(将是所有文件名)重定向到txt文件。一次读取一行txt文件,并将该输入与scp一起使用来复制文件:input = / home / user / filename.txt,而IFS = read -r行
–赛拉德·法拉兹·乌玛(Syed Faraz Umar)
20 Jan 14'9:59
评论
scp * user@host.com:/ var / www / html / target_dir是否不执行您想要的操作?如果是这样,请更详细地编辑您想要做的事情和到目前为止已经尝试过的事情。追加/。不再工作。更多内容