我想找到並壓縮/歸檔所有以 .sh 結尾的腳本,所以我寫了類似的內容:
touch ~/archive.tar; find ~ -type f -name '*.sh' -exec rvf ~/archive.tar {} \;
問題是,在我創建一個名為 archive.tar 的檔案後,檔案不會將檔案解壓縮到目前目錄,而是解壓縮到從中存檔的目錄。例如,可以呼叫存檔腳本~/Desktop/wtf/delete.sh
,但它將被提取到資料夾中wtf
,而不是我目前所在的當前目錄中。那麼如何編輯我的查找腳本以使所有腳本都採用這種格式 ./filename.sh?
答案1
假設您正在使用GNU tar
,您可以說:
tar --transform 's/.*\///' -xzf archive.tgz
這將從檔案名稱中刪除直到最後一個斜杠的所有內容。