Удалите соответствие файлам во всех подкаталогах

Как я могу удалить все .swp файлы во всех моих подкаталогах в соответствии с Linux?

81
задан 22.02.2010, 15:58

4 ответа

Удалите все *.swp файлы под текущим каталогом, используйте find команда в одной из следующих форм:

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

    -delete находка средств опции непосредственно удалит файлы соответствия. Это - лучшее соответствие к фактическому вопросу OP.

    Используя -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 вместо новой строки, и -0 говорит xargs ожидать РАЗДЕЛЕННЫЙ ОТ ПУСТОГО УКАЗАТЕЛЯ вход. Это делает конструкцию канала безопасной для имен файлов, содержащих пробел.

Посмотрите man find для получения дополнительной информации и примеров.

140
ответ дан 07.12.2019, 08:03
find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;

удар 4.0

shopt -s globstar
rm -f /path/**/*.swp
4
ответ дан 07.12.2019, 08:03

find . -name '*.swp' -delete

Наличие находит, делают удаление себя удаляет любой риск для пространства, встроенного в имя файла... Поскольку дополнительная безопасность также рассматривает добавление -type f для файлов только.

16
ответ дан 07.12.2019, 08:03

Для поиска в соответствии с моим корневым каталогом (и использование GNU 'находят' и 'xargs'), я использовал бы:

find $HOME -name '*.swp' -print0 | xargs -0 rm -f

Использование'-print0'и'-0'средства, что имена будут разграничены ASCII NUL '\0' символов, и это обработает пути к файлам с пробелами и т.д. на имена. Если Вы думаете, что у Вас могли бы быть каталоги (или файлы устройств, или FIFOs или другие нефайлы) в соответствии с Вашим каталогом, заканчивающимся '.swp', Вы могли добавить'-type f'опция 'найти'. Если у Вас только будут каталоги, то команда выше не удалит их шумно.

2
ответ дан 07.12.2019, 08:03

Теги

Похожие вопросы