我正在尝试将文件夹从本地计算机复制到远程服务器,但似乎只捕获了该文件夹中一半的文件。这是我的scp命令:
scp read_tree [email protected]:~/Work/gmovie
这是我得到的输出:
.DS_Store 100% 6148 6.0KB/s 00:00
read_tree/check_syscalls.c: No such file or directory
read_tree/check_syscalls.h: No such file or directory
example.c 100% 204 0.2KB/s 00:00
Makefile 100% 438 0.4KB/s 00:00
read_tree.c 100% 9350 9.1KB/s 00:00
read_tree.h 100% 1176 1.2KB/s 00:00
read_tree/stringparse.c: No such file or directory
read_tree/stringparse.h: No such file or directory
read_tree/strtonum.c: No such file or directory
zacc.c 100% 885 0.9KB/s 00:00
我也尝试直接对一个文件使用scp,并得到相同的结果。对我要去哪里出错有任何想法吗?
**我在Mac上的终端机上工作
**编辑:ls -al表示read_tree目录:
total 112
drwxr-xr-x@ 13 name staff 442 Jul 11 10:42 .
drwx------+ 109 name staff 3706 Jul 11 10:42 ..
-rw-r--r--@ 1 name staff 6148 Jul 11 11:16 .DS_Store
-rw-r--r--@ 1 name staff 438 Jul 11 09:58 Makefile
lrwxr-xr-x@ 1 name staff 23 Jul 11 09:58 check_syscalls.c -> ../src/check_syscalls.c
lrwxr-xr-x@ 1 name staff 23 Jul 11 09:58 check_syscalls.h -> ../src/check_syscalls.h
-rw-r--r--@ 1 name staff 204 Jul 11 09:58 example.c
-rw-r--r--@ 1 name staff 9350 Jul 11 09:58 read_tree.c
-rw-r--r--@ 1 name staff 1176 Jul 11 09:58 read_tree.h
lrwxr-xr-x@ 1 name staff 20 Jul 11 09:58 stringparse.c -> ../src/stringparse.c
lrwxr-xr-x@ 1 name staff 20 Jul 11 09:58 stringparse.h -> ../src/stringparse.h
lrwxr-xr-x@ 1 name staff 17 Jul 11 09:58 strtonum.c -> ../src/strtonum.c
-rw-r--r--@ 1 name staff 885 Jul 11 09:58 zacc.c
看起来在Mac上的scp没有遵循符号链接,而符号链接文件正是导致您出现问题的文件。
许多可能的选项中的两个是:
0。scp的使用-r
选项(手册页上说它遵循符号链接)。
1.将文件打包到一个程序包中,然后通过scp发送此单个文件。
2.复制文件夹(取消引用符号链接)并scp这个新文件夹。
scp的联机帮助页显示:
-r Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
因此,我希望以下工作:
scp -r read_tree <destination>
(但是,我尚未在Mac上对此进行测试,但它确实可以在GNU / Linux系统上使用。)
使用打包文件夹,tar -h
然后发送一个结果文件。
tar czhf read_tree.tgz read_tree
scp read_tree.tgz <destination>
现在,您可以ssh进入远程服务器并解压缩文件:
ssh <destination>
cd ~/Work/gmovie
tar xvf read_tree.tgz
制作原始文件夹的副本,但请确保取消引用符号链接以复制原始文件。可以使用cp -L
以下方法实现:
cp -rLf read_tree read_tree_nosymlinks
现在scp新文件夹:
scp -r read_tree_nosymlinks <destination>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句