将本地的文件上传到服务器上,希望保持相对链接关系。(链接文件和被链接文件都在同一的目录下)
使用scp进行传输时,链接关系不会保存,所以需要解决下。(当然可以使用rsync或tar解决,但是rsync命令不熟;)
我的笨方法:
、通过scp将目录文件传输到服务器上; 、在本地所在目录上执行: find ./ -type l | xargs -I '{}' ls -l {} | awk '{printf("%s %s\n", $9, $11)}' > filename
习惯性的使用xargs,还没形成习惯使用exec 、将filename 传到服务器,切换目录到服务器上的目录,执行: awk '{system("rm -r" " " $1 " 2>/dev/null; ln -s" " " $2 " " $1)}' filename
另一种方法,在本地运行:
tar cvjf - tmp | ssh username@ip “tar xvjf - -C /home/username/”
将本地的 tmp目录内容 传至 服务器用户目录下
解压缩文件时,请使用 -C 选项
tar xvf newrc.tar.gz -C tmp/a/b/c
将当前目录下的newrc.tar.gz解压缩到 tmp/a/b/c目录;相当于将 newrc.tar.gz拷贝到tmp/a/b/c目录,然后解压缩
如果需将服务器上的大目录文件传至本地,则
ssh username@ip "cd /home/username; tar cvjf - tmp" | tar xvjf - -C ./
将服务器用户目录下的 tmp目录内容 传至 本地