shell脚本tar脚本-s选项

时间:2016-01-09 10:39:06

标签: shell tar

以下代码有什么作用?我很想知道-s '@^Packages@FreeNAS/Packages@'究竟做了什么。

tar -c -p -f ${NANO_OBJ}/gui-packages.tar \
    -s '@^Packages@FreeNAS/Packages@' \
    -C ${NANO_OBJ}/_.packages .

1 个答案:

答案 0 :(得分:0)

-s选项根据给定的模式修改文件或归档成员名称。这是:

-s '@^Packages@FreeNAS/Packages@'

表示搜索文本Packages并替换为FreeNAS/Packages@是正则表达式分隔符。

根据man tar

  

-s pattern

     

根据模式修改文件或存档成员名称。该模式的格式为/ old / new / [gps]                一个基本的正则表达式,new是匹配部分的替换字符串,以及可选的尾随字母                修改如何处理替换。如果old不匹配,则跳过该模式。在新的,〜是替代 -                与匹配相匹配,1到9与相应的捕获组的内容相对应。可选的尾随g规格                ifies匹配应在匹配的部分后继续并在第一个不匹配的模式上停止。该                可选的尾随s指定该模式适用于符号链接的值。可选的尾随p                指定在成功替换后,应将原始路径名和新路径名打印到                标准错误。