Відповіді:
Видаліть усі файли * .swp під поточним каталогом, використовуйте find
команда в одній з таких форм:
find . -name \*.swp -type f -delete
The -delete
Опція означає find безпосередньо видаляє відповідні файли. Це найкраще відповідає актуальному питанню ОП.
Використання -type f
означає знайти тільки обробляти файли.
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
Варіант -exec
дозволяє знайти для виконання довільної команди на файл. Перший варіант запускатиме команду один раз на файл, а другий буде виконувати якомога більше команд шляхом заміни {}
з якомога більше параметрів.
find . -name \*.swp -type f -print0 | xargs -0 rm -f
Потік вихідних даних на xargs
Використовується для створення більш складних команд, ніж це можливо -exec
. Опція -print0
розповідає find
для розділення відповідностей з ASCII NULL замість нового рядка і -0
розповідає xargs
для очікування NULL-розділеного входу. Це робить конвеєр труби безпечним для назв файлів, що містять пробіли.
Подивитися man find
детальніше і приклади.
Для пошуку в моєму домашньому каталозі (і за допомогою GNU "find" і "xargs") я використовую:
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
Використання ' -print0
"і" -0
'означає, що імена будуть відокремлені символами ASCII NUL', і це буде обробляти шляхи файлів з пробілами і т.д. Якщо ви вважаєте, що у вашому каталозі можуть бути каталоги (або файли пристроїв, або файли FIFO або інші файли), які закінчуються на ".swp", можна додати -type f
'варіант' знайти '. Якщо у вас є тільки каталоги, команда вище не зможе їх зняти шумно.