時々あなたは必要です ディレクトリからほとんどすべてのファイルを削除します、しかし、それらのXNUMXつまたはいくつかを保持したい。 それらが多数ある場合、XNUMXつずつ行くのは面倒な作業です。 これは最善の選択肢ではありません。Linuxでの作業をはるかに簡単にし、必要なものをすべて一度に削除できる方法があります。
たとえば、特定の名前で始まるものだけを削除したり、特定の拡張子を持つものだけを削除したりすることができます。 可能なことすべて実際、他の機会に、私はすでにLxAで同様のチュートリアルを示しました。 ここでは、チュートリアルをステップバイステップで簡単に実行して、保存するファイルを除いて、必要なすべてのファイルを削除できます。
そして最高のことはそれです プログラムをインストールする必要はありません。 rmやfindなどのコマンドで簡単に実行できます。 つまり、Linuxディストリビューションにすでにプリインストールされているプログラムです。 そしてもちろん、この方法は、パターンを見つけ、それらの一致を使用して必要なものだけを削除することに基づいています。
さて、そこを排除するために いくつかの選択肢、 彼らは何ですか…
rmを使用してディレクトリからファイルを削除します
さて、使用するために rmコマンド あなたがどのように感じるかを排除するために、あなたはパターンを識別するいくつかの方法の前に知る必要があります:
- *(パターンのリスト) -指定されたパターンのXNUMX回以上の出現に一致します
- ?(パターンのリスト) -指定されたパターンのXNUMX回またはXNUMX回の出現に一致します
- +(パターンリスト) -指定されたパターンのXNUMXつ以上のオカレンスに一致します
- @(パターンリスト) -指定されたパターンのXNUMXつに一致します
- !(パターンリスト) -指定されたパターンのXNUMXつを除くすべてに一致します
へ extglobをアクティブにする それらを使用するには、最初に次のコマンドを実行する必要があります。
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
これで、rmを使用して必要なものをすべて削除できます。 例えば、 名前に一致するファイルを除くすべてのファイルをディレクトリから削除します «lxa»:
rm -v !("lxa")
指定することもできます 削除したくないXNUMXつ以上の名前。 たとえば、「lxa」と「desdelinux」の削除を回避するには、次のようにします。
rm -v !("lxa"|"desdelinux")
あなたはすべてのファイルを削除することができます、 拡張子のあるものを差し引いたもの .mp3。 例えば:
rm -v !(*.mp3)
最後に、に戻ることができます extglobを無効にする:
shopt -u extglob
検索でディレクトリからファイルを削除します
rmの別の代替手段は findを使用して、必要なものをすべて削除します。 rmでpipeとxargsを使用するか、-deleteオプションを使用して検索できます。 つまり、一般的な構文は次のようになります。
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
たとえば、あなたが欲しいと想像してください 拡張子が付いているファイルを除く、ディレクトリ内のすべてのファイルを削除します .jpgの場合、どちらも同じ結果になるため、次のXNUMXつのコマンドのいずれかを使用できます。
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
代わりに、必要に応じて いくつかの余分なパターンを追加します、あなたもできます。 たとえば、ディレクトリから.pdfまたは.odtを削除したくないとします。
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
もちろん、|でも同じことができます。 前の例のようにxargs。 ちなみに、 -否定しないでください、 ただし、それを削除してポジティブにすることはできます。つまり、一致するパターンを削除し、除外しないようにすることができます。
GLOBIGNORE変数を使用してディレクトリからファイルを削除します
最後に、 別の選択肢 検索してrmし、環境変数を使用して、削除または除外するファイルをポイントします。 たとえば、Downloadsというディレクトリ内のすべてのファイルを削除して、.pdf、.mp3、および.mp4ファイルを保存するとします。 その場合、次のことができます。
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE