У меня есть много файлов под названием dump-{date}.-id.zip. Я хочу удалить всех их с Терминалом. Какова лучшая команда для того, чтобы сделать это, так, чтобы я не удалял другие файлы?
Вывод от ls:
bin dump-2017-09-07_142947-001.zip dump-2017-09-26_151153-299.zip dump-2017-10-05_122928-259.zip dump-2017-10-11_125713-417.zip extras lock system
dependencies.txt dump-2017-09-08_073237-110.zip dump-2017-09-27_083219-519.zip dump-2017-10-05_160511-816.zip dump-2017-10-13_150436-991.zip fabric metatype
deploy dump-2017-09-08_094416-216.zip dump-2017-09-28_151635-932.zip dump-2017-10-06_150632-110.zip dump-2017-10-16_151015-243.zip instances notices.txt
dump-2017-09-04_125758-087.zip dump-2017-09-08_094416-217.zip dump-2017-09-29_145916-799.zip dump-2017-10-09_111104-348.zip dump-2017-10-20_101757-247.zip lib patches
dump-2017-09-06_153340-166.zip dump-2017-09-11_130229-627.zip dump-2017-10-04_132909-041.zip dump-2017-10-09_164517-364.zip dump-2017-10-27_153125-344.zip licenses quickstarts
dump-2017-09-07_101627-120.zip dump-2017-09-26_132217-849.zip dump-2017-10-04_134400-669.zip dump-2017-10-10_142601-467.zip etc license.txt readme.txt
Учитывая вывод, простое rm dump-*.zip
должен быть достаточно. Никакие другие файлы не запускаются с dump-
и конец с .zip
.
Если Вы чувствуете себя педантичными:
find . -maxdepth 2 -regextype egrep -type f -regex './dump-[0-9]{4}(-[0-9]{2}){2}_[0-9]{6}-[0-9]{3}\.zip' -delete
Если Вы хотите проверить сначала, Вы могли бы использовать find
чтобы сначала показать Вам, что будет управляемым на и затем удаляет:
find . -maxdepth 1 -name "dump-*.zip"
Проверьте, что вывод только содержит файлы, которые Вы хотите удалить, затем добавить -delete
переключатель к команде:
find . -maxdepth 1 -name "dump-*.zip" -delete