Find
如何告訴 xargs 將 tar 解壓到某個目錄
我寫了我的第一個腳本:
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
假設您的命令的其餘部分正常工作,您只需替換最後一部分
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 變體)。希望存檔中的路徑名也是相對的。