it-swarm-ja.com

Linuxでn分前に作成されたすべてのファイルを削除する方法

ほとんどの場合、tarアーカイブを抽出すると、アーカイブファイルと同じ名前でサフィックスが異なるディレクトリが取得されると思います。しかし、いくつかの不運なケースでは、今日出会ったように、tarballを抽出した後、作業ディレクトリに多数のファイルが広がっていることに気が付きました。

だから私はあなたから学びたいことです-新しく作成されたファイルをどのように移動できますか? 「find plus rm」という派手なアプローチがあるはずですが、正確な方法はわかりません。

15
HaiYuan Zhang

何だろうman find 言うでしょう。次に、あなたの努力を示すこともできます。

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • -type fは、通常のファイルのみが選択されることを指定するために使用されます。
  • -cmin -1ファイルのステータスが最後(1分)以内に最後に変更されました。
  • -deleteフラグは、既知のユニバースなどの電子ファイルをすべて削除するようにfindに指示するので、使用する場合は注意してください。

最初にテスト実行なし-deleteフラグを強くお勧めします。

注意 -deleteは、移植できない拡張機能です。

これを使用する前に、findマンページを読むことをお勧めします。これは、状況に適用される可能性のあるさまざまな問題や警告をカバーしているためです。

25
mctylr
find . -mtime -60s -exec mv {} /dest/dir \;

現在のディレクトリ(およびサブディレクトリ)で、過去60秒間に変更されたすべてのファイルを検索し、それらを/ dest/dirに移動します。

5
skarface

簡単な方法(グラフィカルインターフェイスがない場合)は mc を使用することです。日付でファイルを並べ替えることができます。

コマンドラインからtarにあったファイルを削除することもできます。

> rm $( tar -ztf mytar.tar.gz )

(-ztf)はtar.gzファイル用です。通常のtarには(-tf)を、tar.bz2ファイルには(-jtf)を使用できます。

ファイルのリストが大きすぎて、上記のコマンドで問題が発生する場合は、xargsを使用できます。

> tar -ztf mytar.tar.gz | xargs rm
0
Sunny