2017-10-30 19 views
1

bashスクリプトを実行しようとすると、Xより古いファイルが圧縮され、圧縮後に圧縮解除されたバージョンは削除されます。このようなことを試してみましたが、うまくいきません。デフォルトではXより古いファイルを圧縮して古いファイルを削除した文

find /home/randomcat -mtime +11 -exec gzip {}\ | -exec rm; 
+0

ここで質問する前に、コマンドのドキュメントをお読みください。あなたのコンピュータで 'man find'と' man gzip'を試してみてください。 –

+0

'|'はあなたのコマンドで間違っています –

答えて

2

(それが圧縮された変種でそれを置き換えるため)、gzipは圧縮されていないファイルを削除します。そして、あなたは普通のファイル(シンボリックリンクではなく、ディレクトリやデバイスではありません)以外のもので動作させたくありません。

だから、あなたもfind(1)いくつかのハードリンクを持つファイルを避けるためにしたいこと、少なくとも

find /home/randomcat -mtime +11 -type f -exec gzip {} \; 

をしたいです。また、コマンドを実行する前に尋ねることもできます。 -execまたは-okfindコマンドはセミコロン(または+記号)を望んでいる

find /home/randomcat -mtime +11 -type f -links 1 -ok gzip {} \; 

、あなたはあなたのshellから;をセミコロンescapeする必要があります。そして、あなたは試みることができます。あなたは+findコマンドを使用する場合は、(単一gzipプロセスへの)グループいくつかの引数は、とても少ないのプロセスを実行するだろうquoteへ​​3210代わりの\;それ...

を使用することができます(しかし、彼らは長く続くだろう)。だから、あなたがglobbingとどのようにシェルworksの詳細を読むことをお勧めします

find /home/randomcat -mtime +11 -type f -links 1 -exec gzip -v {} + 

を試みることができます。

ところで、あなたはcommand pipeline(あなたの質問では|の間違った使用によって示唆されているように)は必要ありません。

GNU parallelを使用して並列処理を実行したり、バックグラウンドジョブを使っていくつかのシェルにフィードを送ったりすることもできます。

find /home/randomcat -mtime +11 -type f -links 1 \ 
    -exec printf "gzip %s &\n" {} \; | bash -x 

実際には処理速度が向上しません。

+0

私はそれをチェックし、ファイルは圧縮されますが、圧縮されていないバージョンはまだ存在します。 -exec rm; '? – harcotlupus

+0

あなたは本当に確信しています、私は示唆しているコマンドを試しているときにこの動作を観察していません。必要に応じてセミコロンから脱出しましたか? –

+0

そしてあなたのコマンドから '|'を削除してください。違います。私の提案では '|'を使用しないことに注意してください。 –

1
find /home/randomcat -mtime +11 -exec gzip {} + 

このbashスクリプトは、あなたがgzip形式で新しいファイルを作成する「コマンドを見つける」.Insteadで見つけたファイルを圧縮format.Let年代をgzip圧縮するファイルは、あなたがXよりも古いという3つのファイルを持っていると言う変換し、彼らの名前はa、b、cです。 find/home/randomcat -mtime +11 -exec gzip {} +コマンドを実行した後、 では、/ home/randomcatディレクトリにbcが表示される代わりに、a.gz b.gz c.gzが表示されます。

+0

私はそれについては分かりません。'find'はセミコロンを必要とし、シェルによって処理されないようにエスケープする必要があります。 –

+0

あなたは正しい、間違いだった。 "find/home/randomcat -mtime +11 -exec gzip {} \;"/home/randomcat -mtime +11 -exec gzip {} + "を使用しなければなりません – dburcu

+0

あなたは答えを編集する必要があります(または削除してください)。 –

関連する問題