当前位置:  技术问答>linux和unix

关于shell脚本的tar命令“-”,表示神马意思。。。。呼叫大神驾到

    来源: 互联网  发布时间:2017-03-22

    本文导语:    1 #! /bin/bash   2   3 A="/root/tmp/test2"   4 B="/root/tmp/test4"   5   6 cd $A   7 tar cvf - . | tar xvf - -C $B 这个脚本实现的把A目录下的所有内容拷贝到B的目录下。 但是,我的问题是: tar cvf - . 或者tar xvf - ...

  1 #! /bin/bash
  2
  3 A="/root/tmp/test2"
  4 B="/root/tmp/test4"
  5
  6 cd $A
  7 tar cvf - . | tar xvf - -C $B
这个脚本实现的把A目录下的所有内容拷贝到B的目录下。
但是,我的问题是:
tar cvf - . 或者tar xvf - -C $B中的“-”表示神马意思?
我不要“-”的话,也就是tar cvf . | tar xvf -C $B会报错的。
嗯~~我自己怀疑是临时文件,,,但是找不到根据,,,
求大神驾到啊~~~~

|
##参考来源:
1. The dash "-" represents standard input. dash表示标准输入设备.
http://www.abbeyworkshop.com/howto/unix/nix_gtar/index.html
2.
If the  name of the file is - (dash), tar writes to standard output or reads
      from standard input, whichever is appropriate.  Thus, tar can be used
      as the head or tail of a filter chain.  The tar utility can also be
      used to move hierarchies with the command:
   cd fromdir; tar cf - . | (cd todir; tar xpf -)
http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN1/0153____.HTM

##理解:
1. tar cvf - . 表示把当前文件夹(.)下的内创建(c)一个包,包名(f)为标准输入设备
2. | 管道只能从标准输入设备中输入数据(所以上面要创建文件到标准输入设备)[注1]
3. tar xvf -C $B 再转到(C) $B 目录,从标准输入设备(-)中解包(x)出(原来的)文件.

##注:
1. 看看UNIX痛恨者手册会了解Linux的一些限制和不爽的地方.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • shell脚本怎样控制文件的大小,路过的大神们进来看看,感谢!
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 请问“当前shell”和“子shell”的区别?
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3