Shell-Script
壓縮並歸檔到其他目錄
我在傳入目錄中有大約 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 將最終出現在您的存檔中。