.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"

関連情報