以下代码有什么作用?我很想知道-s '@^Packages@FreeNAS/Packages@'
究竟做了什么。
tar -c -p -f ${NANO_OBJ}/gui-packages.tar \
-s '@^Packages@FreeNAS/Packages@' \
-C ${NANO_OBJ}/_.packages .
答案 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 指定在成功替换后,应将原始路径名和新路径名打印到 标准错误。