.tar.gz
CSV 파일을 아카이브 로 압축하고 싶습니다 .
나는 이것을 시도했지만 작동하지 않습니다. 이 문제를 해결하는 데 도움을 줄 수 있는 사람이 있나요?
#!/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
또는"$LOG_FILES"/*.csv
대신에 루프를 원합니다/tmp/
.[ -f "$file" ]
다음을 사용하여 확인 해야 합니다 .정기적인파일만(바라보다)- 항상 파일 이름 변수를 인용하십시오.
"$file"