GNU/Linux >> Znalost Linux >  >> Linux

Odstraňte odpovídající soubory ve všech podadresářích

Odstraňte všechny soubory *.swp pod aktuálním adresářem, použijte find příkaz v jedné z následujících forem:

  • find . -name \*.swp -type f -delete

    -delete volba znamená, že najít přímo odstraní odpovídající soubory. Toto nejlépe odpovídá skutečné otázce OP.

    Pomocí -type f znamená, že funkce find zpracuje pouze soubory.

  • find . -name \*.swp -type f -exec rm -f {} \;
    find . -name \*.swp -type f -exec rm -f {} +

    Možnost -exec umožňuje find provést libovolný příkaz pro každý soubor. První varianta spustí příkaz jednou na soubor a druhá bude spouštět co nejméně příkazů nahrazením {} s co největším počtem parametrů.

  • find . -name \*.swp -type f -print0 | xargs -0 rm -f

    Propojení výstupu na xargs se používá ve složitějších příkazech pro jednotlivé soubory, než je možné u -exec . Možnost -print0 říká find k oddělení shod pomocí ASCII NULL místo nového řádku a -0 říká xargs očekávat vstup oddělený NULL. Díky tomu je konstrukce potrubí bezpečná pro názvy souborů obsahující mezery.

Viz man find pro další podrobnosti a příklady.


find . -name '*.swp' -delete

Po nalezení do odstranění se odstraní jakékoli riziko pro prostor vložený v názvu souboru, ...Pro větší zabezpečení zvažte také přidání -type f pouze pro soubory.


find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;

bash 4.0

shopt -s globstar
rm -f /path/**/*.swp

Linux
  1. Použijte Najít k nalezení určitého adresáře a odstranění všech souborů v něm kromě jednoho adresáře?

  2. Bash skript pro odstranění souborů starších než x dní s podadresáři

  3. Jak odstranit všechny soubory v adresáři kromě některých?

  1. Smazat všechny soubory kromě určitého podadresáře pomocí funkce Najít?

  2. Smažte všechny soubory kromě 1000 náhodných souborů v adresáři

  3. Jak vypsat všechny soubory oddílu na linuxu?

  1. Jak najít všechny řídké soubory v Linuxu

  2. Jak gzipovat všechny soubory ve všech podadresářích v bash

  3. Najděte všechny soubory s názvem obsahujícím řetězec