find . | grep -v "excluded files criteria" | xargs rm
これにより、現在のディレクトリ内のすべてのファイルが一覧表示され、次に条件に一致しないすべてのファイルが一覧表示され(ディレクトリ名と一致することに注意)、それらを削除します。
更新:編集に基づいて、リストしたファイル以外のすべてを現在のディレクトリから本当に削除したい場合は、これを使用できます:
mkdir /tmp_backup && mv textfile.txt backup.tar.gz script.php database.sql info.txt /tmp_backup/ && rm -r && mv /tmp_backup/* . && rmdir /tmp_backup
バックアップディレクトリを作成し/tmp_backup
(root権限を持っていますよね?)、リストしたファイルをそのディレクトリに移動し、現在のディレクトリ内のすべてを再帰的に削除します(あなたが正しいディレクトリにいることを知っていますよね?)現在のディレクトリに戻って/tmp_backup
、最後にすべてを削除し/tmp_backup
ます。
ルートからバックアップディレクトリを選択しました。ルートからすべてを再帰的に削除しようとすると、システムに大きな問題が発生するからです。
確かにこれを行うにはよりエレガントな方法がありますが、これはかなり簡単です。