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 naxargs
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