我想弄清楚為什么以下 tar 命令不起作用 -
我已經嘗試了以下 2 個版本,但都不起作用 -
版本 1
tar -c --use-compress-program=pigz -f /home/jhonst/data_lake/1m/UX.tar -C '/home/jhonst/data_lake/1m/*.UX.csv'
我看到的錯誤是
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
版本 2
tar -c --use-compress-program=pigz -f /home/jhonst/data_lake/1m/UX.tar -C '/home/jhonst/data_lake/1m/*.UX.csv' .
我看到的錯誤是
tar:
/home/jhonst/data_lake/1m/*.UX.csv: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
請有人指導我我做錯了什么
uj5u.com熱心網友回復:
當你這樣做時:
tar -c --use-compress-program=pigz -f /home/jhonst/data_lake/1m/UX.tar /home/jhonst/data_lake/1m/*.UX.csv
你會得到:
tar -t -f /home/jhonst/data_lake/1m/UX.tar
home/jhonst/data_lake/1m/file1.UX.csv
home/jhonst/data_lake/1m/file2.UX.csv
...
哪個不是最好的。擺脫 tar 存檔中的“路徑”有兩種可能性:
- 使用
cd(在子shell中或使用pushd/popd如果您想在 tar 命令后回傳原始目錄)進入目錄:
cd /home/jhonst/data_lake/1m && tar -c --use-compress-program=pigz -f UX.tar *.csv
# returning to the same place after the tar:
(cd /home/jhonst/data_lake/1m && tar -c --use-compress-program=pigz -f UX.tar *.csv)
# or:
pushd /home/jhonst/data_lake/1m && {
tar -c --use-compress-program=pigz -f UX.tar *.csv
popd
}
- 使用
-CGNU tar的選項,這不是那么好處理:
dirpath=/home/jhonst/data_lake/1m
files=("$dirpath"/*.csv)
tar -c --use-compress-program=pigz -f "$dirpath"/UX.tar -C "$dirpath" "${files[@]#$dirpath/}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/358768.html
