tar 命令的问题
Issues with tar command
我想弄清楚为什么以下 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
请有人指导我做错了什么
当你这样做时:
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
如果你想 return 到 [=34 之后的原始目录=]命令):
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
}
- 使用GNU的
-C
选项tar,不太好办:
dirpath=/home/jhonst/data_lake/1m
files=("$dirpath"/*.csv)
tar -c --use-compress-program=pigz -f "$dirpath"/UX.tar -C "$dirpath" "${files[@]#$dirpath/}"
我想弄清楚为什么以下 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
请有人指导我做错了什么
当你这样做时:
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
如果你想 return 到 [=34 之后的原始目录=]命令):
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
}
- 使用GNU的
-C
选项tar,不太好办:
dirpath=/home/jhonst/data_lake/1m
files=("$dirpath"/*.csv)
tar -c --use-compress-program=pigz -f "$dirpath"/UX.tar -C "$dirpath" "${files[@]#$dirpath/}"