#macos
#macos
Вопрос:
Мне нужно обновить проект на моем веб-сервере. К сожалению, другие пользователи уже изменили некоторые файлы на сервере, которые я не хочу перезаписывать. Я могу безопасно перезаписать все файлы, которые начинаются с «Builder» (например, «BuilderUser.php » или «BuilderTemplate.php «).
Моя идея заключалась в том, чтобы скопировать мой локальный каталог и удалить все файлы, которые не начинаются с «Builder», а затем загрузить полученную папку. И я использую OS X. Есть ли какой-либо способ удалить все файлы, которые не имеют префикса «Builder»?
Ответ №1:
Откройте терминал, перейдите в корень вашего проекта и введите
find . -type f | grep -v '/Builder[^/]*' | xargs rm
find
будет печатать что угодно в .
или подкаталогах, -type f
имея в виду обычные файлы (в отличие от блочных устройств, символических ссылок, каталогов и т.д.). grep
будет печатать любую строку, которая (из-за -v
) не соответствует шаблону. Для шаблона, /
указывающего каталог, ‘Builder’ должен быть первым, что появляется после каталога (так в имени файла), [^/]
означает любой символ, кроме /
(разделитель каталогов), и *
означает любое количество последнего элемента (без косых черт). xargs
затем берет файлы из канала и передает их в качестве аргументов rm
.
Обратите внимание, что это будет работать только с файлами без пробелов в имени. Если вам нужен тот, который обрабатывает пробелы, опубликуйте или найдите параметры, разделяющие ноль, на справочных страницах.