Shell-Script

壓縮並歸檔到其他目錄

  • September 16, 2019

我在傳入目錄中有大約 250 個 CSV 源文件。

我的任務是合併這些 CSV 文件並生成一個類似Merge_. 然後,Informatica 作業將選擇合併文件作為源並開始工作。

現在合併部分得到處理。我希望在/source/archive生成合併文件後立即將所有 CSV 文件壓縮並存檔到另一個目錄。

另外,我希望Merge_文件保持原樣不變。

我知道如何分別 zip 和 tar,但不確定如何將兩者結合起來並移動到其他目錄。

我正在嘗試使用這樣的東西,但它不起作用:

tar -czvf All_Files.tar.gz *.csv  /Source/Archive --remove-files --exclude Merge_file_1.csv, Merge_File_2.csv

期待它 tar 和 zip 然後將文件移動到 /source/archive 並刪除除合併文件之外的原始文件

您需要在兩個命令中執行此操作,--remove-files忽略--exclude.

tar -czvf ../All_Files.tar.gz --exclude 'Merge_*' *.csv && \
find . -type f -name '*.csv' -not -name 'Merge_*' -delete

該消息"tar: Removing leading '/' from member names"不是錯誤,而是 tar 按預期工作。

請注意,--exclude它採用模式(例如'Merge_*'),而不是逗號分隔的列表。您需要將它放在要從存檔中排除的文件之前,否則Merge_-files 將最終出現在您的存檔中。

引用自:https://unix.stackexchange.com/questions/541959