.csv에서 .tar.gz로 파일을 압축하기 위해 쉘 scipt를 작성하는 방법은 무엇입니까?

.csv에서 .tar.gz로 파일을 압축하기 위해 쉘 scipt를 작성하는 방법은 무엇입니까?

.tar.gzCSV 파일을 아카이브 로 압축하고 싶습니다 .

나는 이것을 시도했지만 작동하지 않습니다. 이 문제를 해결하는 데 도움을 줄 수 있는 사람이 있나요?

#!/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

  1. /tmp/*.csv또는 "$LOG_FILES"/*.csv대신에 루프를 원합니다 /tmp/.
  2. [ -f "$file" ]다음을 사용하여 확인 해야 합니다 .정기적인파일만(바라보다)
  3. 항상 파일 이름 변수를 인용하십시오."$file"

관련 정보