我写了我的第一个脚本:
find /media/temp/test -type f -printf '%T@ %p\n*.tar.gz' | sort -n | tail -1 | cut -f2- -d" " | xargs tar -xvpf
我想找到最新修改的文件 .tar.gz ,然后将其解压到某个目录而不是 /media/temp/test
答案1
假设命令的其余部分工作正常,您只需替换最后一部分即可
xargs tar -xvpf
和
(cd /certain/directory; xargs tar -xvpf)
并且将从该目录执行 tar 命令。这是执行相对于另一个目录的命令的常见有用“技巧”。
请注意,这只适用于此,因为您的 tar 文件名(在本例中为 find 命令的输出)是绝对路径。如果它是相对路径名,那么上面的“cd”将不起作用。
tar
已经有一个可以使用的参数:
-C directory
In c and r mode, this changes the directory before adding the following files. In x mode, change directories after opening
the archive but before extracting entries from the archive.
所以,你也可以让最后一部分是
xargs tar -C /certain/directory -xvpf
检查并测试您的 tar 版本;平台之间存在细微的差异(您不指定您正在使用哪个 UNIX 变体)。希望您的存档中的路径名也是相对的。