我想将 CSV 文件压缩为.tar.gz
存档。
我这样尝试过,但它不起作用。任何人都可以帮忙解决这个问题吗?
#!/bin/bash
LOG_FILES="/tmp/"
for file in $LOG_FILES;
do
if [ -e "$file" ]
then
tar -cvzf $file.tar.gz $file;
fi
done
答案1
find
会做的
find /tmp/ -type f -name "*.csv" -execdir tar --remove-files -cvzf "{}.tar.gz" "{}" \;
这将压缩文件并将其存储在原始文件的同一目录中。
这还假设您正在使用 GNU tar
。
答案2
- 你想循环
/tmp/*.csv
or"$LOG_FILES"/*.csv
而不是/tmp/
. - 你应该使用
[ -f "$file" ]
来检查常规的仅文件(看) - 始终引用文件名变量:
"$file"