我正在运行一个PHP脚本,它让我获得了我想要的文件的绝对路径.这是我的语法:
tar -cf tarname.tar -C /www/path/path/file1.txt /www/path/path2/path3/file2.xls
当我解开它时,它会创建文件的绝对路径.我如何才能获得它/path下面的所有内容?
Joh*_*ney 51
您错误地使用了-C用于更改目录的开关.所以你需要做的是:
tar -cf tarname.tar -C /www/path path/file1.txt path2/path3/file2.xls
或者如果你想打包下的所有东西/www/path:
tar -cf tarname.tar -C /www/path .
您可以-C多次使用开关.
ire*_*ses 50
如果要删除文件名的前n个前导组件,则需要strip-components.所以在你的情况下,在提取时,做
tar xvf tarname.tar --strip-components=2
该手册页有名单tar的许多选项,包括这一个.一些早期版本的tar使用--strip-path此操作来代替.
Rom*_*jev 10
对我来说,以下是最好的:
tar xvf some.tar --transform 's?.*/??g'
--transform参数是sed的替换正则表达式,每个提取的文件路径都被馈送到该正则表达式.--strip-components与之不同,它将删除所有路径信息,而不仅仅是固定数量的组件.