2日後のディレクトリを圧縮(tar
またはgzip
)したいです。zip
次のファイルがあります。各ディレクトリには複数のサブディレクトリとファイルがあります。
Oct 21 13:01 test1
Oct 22 13:01 test2
希望の出力:
test1.tar
test2.tar
以下のコマンドを書いてみましたが、うまくいきません。
find . -type d -maxdepth 1 -mtime +2 \! -name '*.gz' -exec gzip {} \;
次のエラーが発生します。
gzip:test1.tar is a directory -- ignored
gzip:test2.tar is a directory -- ignored
ベストアンサー1
gzipはファイルのみを圧縮できるため、gzip圧縮の前にまずディレクトリをtarする必要があります。
あなたが望むのは、tar
「z」、「z」圧縮でGNUを使用することです:
find . -type d -maxdepth 1 -mtime +2 \! -name '*.gz' -exec tar cfz {}.tgz {} \;
コメント後の編集:
私はこれが一般的な状況で重複していることを知りませんでした\! -name '*.gz'
...ディレクトリ名が.gz
。
find . -type d -maxdepth 1 -mtime +2 -exec tar cfz {}.tgz {} \;