Gstreamer0.10-plugins-bad версия пакета 0.10.22-3 заменяет файл, которые находятся также в gstreamer0.10-plugins-really-bad версии 0.10.22-0.1. Это, кажется, ошибка, что это не работает здесь ни без каких ошибок (см. здесь для получения дополнительной информации). Но если Вы смешаете версии от различных дистрибутивов, то ясная процедура обновления не гарантируется.
Для решения проблемы просто удалите gstreamer0.10-plugins-really-bad
пакет, при помощи aptitude purge gstreamer0.10-plugins-really-bad
или apt-get remove --purge gstreamer0.10-plugins-really-bad
.
Можно использовать -delete
флаг find
(первый тест с -ls
)
find -not -name "*.c" -delete
Если Вы не хотите использовать find
, но только файлы в текущем каталоге, Вы могли сделать
rm !(*.c)
Удостоверьтесь в bash
это с shopt -s extglob
корректный globbing установлен. Кроме того, если у Вас есть набор globstar (shopt -s globstar
), можно действовать рекурсивно (для bash
версии выше 4):
rm **/!(*.c)
Я всегда предварительный друг find
в таких случаях. У Вас нет беспокойства о специальных именах файлов, и можно обработать различные типы файлов. Если Вам нравится удалять файлы только, необходимо добавить -type f
к Вашим опциям. Таким образом, мое любимое решение:
find -not -name "*.c" -type f -delete
Но будьте осторожны. Тестирование таких команд всегда является хорошей идеей.
Активируйтесь ksh расширил подстановочные шаблоны с помощью команды shopt -s extglob
(можно вставить это Ваш ~/.bashrc
). Затем шаблон !(*.c)
соответствия все файлы в текущем каталоге кроме тех то соответствие *.c
:
rm !(*.c)
Это довольно опасно, как это удаляет .txt
файлы, .h
файлы, и т.д. Менее решительная команда была бы
rm !(*.*) *.o
Это все еще удаляет README
, Makefile
, и т.д. Необходимо, возможно, только удалить исполняемые файлы:
find . -type d -prune -o -type f -perm -100 -exec rm {} +
Короче, если Ваш find
поддержки это:
find . -maxdepth 1 -type f -perm -100 -delete
-maxdepth 1
к находке для остановки рекурсии. – Flup 04.04.2013, 15:56-delete
не является портативным, если это имеет значение, можно использовать-exec rm
вместо этого. – Chris Down 08.04.2013, 05:12rm !(*.c)
генерируетevent not found
в ударе это должно быть продолжено сshopt -s extglob
. – kenorb 14.03.2015, 20:48-delete
для проверки Вы не сделали никого потенциально disastroud ошибкой. – Shadur 01.06.2016, 10:41