CentOSでファイルを1つずつ圧縮・解凍してみる
CentOSでファイルを1つずつ圧縮・解凍してみる。
1つずつ圧縮
現状、下記の状態。
$ ls
aaa.txt
bbb.txt
ccc.txt
findのexecオプションを使うと1つずつ圧縮できる。
$ find -name "*.txt" -exec tar zcvf {}.tar.gz {} \;
実行した結果、下記のようになる。
$ ls
aaa.txt
aaa.txt.tar.gz
bbb.txt
bbb.txt.tar.gz
ccc.txt
ccc.txt.tar.gz
1つずつ解凍
一旦、txtファイルを削除して、tar.gzのみの状態にする。
$ rm *.txt $ ls aaa.txt.tar.gz bbb.txt.tar.gz ccc.txt.tar.gz
解凍は下記のコマンドでできる。
$ find -name "*.tar.gz" -exec tar zxvf {} \;
実行した結果、下記のようになる。
$ ls
aaa.txt
aaa.txt.tar.gz
bbb.txt
bbb.txt.tar.gz
ccc.txt
ccc.txt.tar.gz
1つずつ圧縮(元ファイル削除)
tar.gzを削除して、元の状態に戻す。
$ rm *.tar.gz $ ls aaa.txt bbb.txt ccc.txt
--remove-filesを付けると、圧縮後、元ファイルを削除してくれる。
$ find -name "*.txt" -exec tar zcvf {}.tar.gz {} --remove-files \;
実行した結果、下記のようになる。
$ ls
aaa.txt.tar.gz
bbb.txt.tar.gz
ccc.txt.tar.gz
1つずつ解凍(元ファイル削除)
解凍後、元ファイルを削除するオプションが見つからなかったので、
下記のような感じで無理やり元ファイルを削除してみる。
$ find -name "*.tar.gz" -exec tar zxvf {} \; -exec rm {} \;
エラーがあった場合など問題ないかよく分からないが
実行した結果、とりあえず下記のようになった。
$ ls
aaa.txt
bbb.txt
ccc.txt