За исключением некоторых расширений файлов. (удаление ненужных файлов, кроме файлов субтитров, из каталога видео)
Сначала запустите
find . -type f ! -name '*.sub' ! -name '*.srt' -size -20M -print
, чтобы убедиться, что он соответствует только тем типам файлов, которые вам нужны. Я давно пользуюсь Unix и всегда делаю это, прежде чем просить какую-либо команду удалить что-либо (опечатки всегда происходят в самое неподходящее время). Затем отредактируйте предыдущую командную строку, чтобы она стала
find . -type f ! -name '*.sub' ! -name '*.srt' -size -20M -print0 | xargs -0 /bin/rm -f
, и запустите ее. Это должно делать то, что вы хотите. Вы можете повторить часть ! -name '*.srt'
несколько раз, если вам нужно исключить больше файлов. Будьте осторожны, чтобы включить одинарные кавычки: они важны для предотвращения расширения оболочкой имени файла.
здесь:
find . -type f -name *.bak -size -20M -exec rm {} \;
с -name *.bak
вы ищете файлы с расширением "bak", -type f
ищет файлы (не каталоги), -size -20M
выдает все файлы меньше 20 МБ (-size +20M
для обратного поиска файлов размером более 20 МБ), а с помощью -exec
вы удаляете результаты этого поиска.
find . -type f ! -name '*.ext' -size -20M -delete
легче набрать и запомнить, чем что-либо еще. Вы должны помнить, что -delete зависит от позиции и удаляет без дальнейшего уведомления и корзины.
Просто будьте осторожны, делайте резервные копии и проверяйте их перед удалением:
find . -type f ! -name '*.ext' -size -20M