将本地的文件上传到服务器上,希望保持相对链接关系。(链接文件和被链接文件都在同一的目录下)

使用scp进行传输时,链接关系不会保存,所以需要解决下。(当然可以使用rsync或tar解决,但是rsync命令不熟;)

我的笨方法:

1、通过scp将目录文件传输到服务器上;

2、在本地所在目录上执行:

find ./ -type l | xargs -I '{}' ls -l {} | awk '{printf("%s  %s\n", $9, $11)}' > filename
习惯性的使用xargs,还没形成习惯使用exec

3、将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目录内容  传至 本地

 

相关文章:

  • 2022-12-23
  • 2022-01-14
  • 2022-01-05
  • 2021-06-28
  • 2021-04-21
  • 2021-11-11
  • 2022-12-23
  • 2021-11-06
猜你喜欢
  • 2022-01-01
  • 2021-09-22
  • 2021-10-21
  • 2021-07-02
  • 2022-12-23
  • 2021-08-10
  • 2021-12-31
相关资源
相似解决方案