場合によっては、ディレクトリ内のすべてのファイルを削除したり、一部の指定された種類 (指定された拡張子で終わる) を除くファイルを削除してディレクトリをクリーンアップする必要がある状況に遭遇することがあります。
この記事では、指定されたファイル拡張子を除くディレクトリ内のファイルを削除する方法、または rm、find、および globignore コマンドを使用して入力する方法を説明します。
先に進む前に、Linux の重要な概念である、当面の問題を解決できるファイル名パターン マッチングについて簡単に見てみましょう。
Linux では、シェル パターンは、ワイルドカードまたはメタ文字と呼ばれる次の特殊文字を含む文字列です:
* – 0 個以上の文字と一致します
? – 任意の 1 文字と一致します
[sequence] – 文字列内の任意の文字と一致します。シーケンス
[!sequence] – シーケンスにない任意の文字と一致します
ここでは、次の 3 つの可能なアプローチを検討します:
拡張パターン マッチング演算子を使用してファイルを削除する
さまざまな拡張パターン マッチング演算子を以下に示します。リストは、| で区切られた 1 つ以上のファイル名を含むリストです:
* (パターン リスト) – 指定されたパターンの 0 個以上の出現と一致します
?(パターン リスト) – 指定されたパターンの 0 または 1 つの出現と一致します
@(パターン リスト) – 指定されたパターンの 1 つ以上の一致と一致します
!(パターン リスト) – 指定された 1 つのパターンを除く一致と一致します
これらを使用するには、次のように extglob シェル オプションをオンにする必要があります:
# shopt -s extglob
1. 次のコマンドを入力して、ディレクトリ内の filename を除くすべてのファイルを削除します
$ rm -v !("filename")
$ rm -v !("filename1"|"filename2")
2.
Linux で一部のファイルを除くすべてのファイルを削除します
$ rm -i !(*.zip)
指定されたファイル拡張子を除くすべてのファイルを削除します
$ rm -v !(*.zip|*.odt)Linux で find コマンドを使用してファイルを削除しますこの方法では、以下に示すように、find コマンドの適切なオプションを使用するか、xargs コマンドでパイプを使用することができます。現在のディレクトリ内の .gz を除くすべてのファイルを削除します
$ shopt -u extglob

この方法を使用するには、ファイルを削除するディレクトリに移動し、次のように GLOBIGNORE 変数を設定します:
$ find /directory/ -type f -not -name 'PATTERN' -delete $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm {} $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm [options] {}
この場合、.odt、.iso、.txt を除くすべてのファイルが、カレントディレクトリが削除されます。
次に、次のコマンドを実行してこのディレクトリをクリアします:
$ find . -type f -not -name '*.gz' -delete
その後、GLOBIGNORE 変数を閉じます:
$ unset GLOBIGNORE
使用 bash 变量 GLOBIGNORE 删除文件
注:为了理解上面的命令行采用的标识的意思,请参考我们在每一个插图中使用的命令对应的 man 手册。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
