Вопрос Удаление файлов через терминал, где файлы имеют определенное ключевое слово


ОБНОВИТЬ

Статус процесса для команды rm -rf ~/.local/share/Trash/files/ было установлено Very High, Команда была начата сегодня в 07:45 и все еще работает. Время процессора составляет 53 секунды при 0955, постоянная памяти - 52,0 miB. Состояние идет между Running а также Uninteruptible


Вчера я открыл nano, чтобы просто посмотреть файл и заметить, что внутри моего домашнего каталога у меня очень много файлов, которые можно удалить. Они там, потому что некоторое время назад я случайно превратил свой домашний каталог в git repo. Я отключил это, но я хочу очистить беспорядок, который я мог видеть только при просмотре папки при поиске файла с помощью nano.

У меня такая же проблема в моем мусорном ведре, где у меня так много файлов из-за плохого git-repos, что я не могу просто щелкнуть мусорную корзину и щелкнуть пустой bin, все 8 концертов плюс своп, израсходованный, и ничего не удаляется.

Как удалить файлы с терминала, где файлы соответствуют определенному шаблону? Я пробовал следующую команду:

rm -rf ~/.local/share/Trash/Files/*

rm -rf ~/.local/share/Trash/info/*

и я, в конце концов, через некоторое время получаю сообщение о том, что есть только много файлов, и оно не удаляется.

Я хотел бы сказать, удалить все файлы, которые начинаются или заканчиваются некоторым шаблоном, например .quo или что бы они ни были. Подвести итог:

Как перечислить все файлы, чтобы я мог по крайней мере начать находить некоторые начальные или конечные шаблоны, чтобы идентифицировать те, которые были удалены Как использовать этот шаблон для их удаления?


2
2018-05-01 12:27


происхождения


Используйте команду find: find /path/to/directory/ -name *pattern*, Если в этом списке указаны правильные файлы, удалите их с помощью find /path/to/directory/ -name *pattern* -exec rm {} \;, Опция exec выдает команду rm, где {} заменяется именем файла. \; бит означает конец команды rm. - Jos
Спасибо, я попробую сегодня вечером, когда я вернусь домой и сообщит, что произойдет - MCP_infiltrator


ответы:


Ошибка, которую вы получаете, заключается в том, что у вас слишком много файлов, что означает, что * в вашей rm команда расширяется до списка, который больше, чем предел (ARG_MAX). Итак, чтобы обойти это, у вас есть различные варианты:

  1. Дайте rm только некоторые файлов:

    rm -rf ~/.local/share/Trash/Files/*.quo
    
  2. Удалите каталог, содержащий файлы, это позволяет вообще не перечислять файлы:

    rm -rf ~/.local/share/Trash/Files/
    
  3. использование find:

    find ~/.local/share/Trash/Files/ -delete
    

    или, для не-GNU find:

    find ~/.local/share/Trash/Files/ -exec rm {} +
    
  4. Использовать оболочку

    for file in  ~/.local/share/Trash/Files/*; do rm "$file"; done
    

2
2018-05-01 13:08



на данный момент он работает в течение 20 минут, я пошел на путь ~ / .local / share / Trash и сделал rm -rm файлы будут обновляться позже - MCP_infiltrator
следующая команда rm -rf ~/.local/share/Trash/files/ работает в течение двух часов, когда я перехожу к свойствам процесса, он говорит, что использование процессора составляет 0%, а процессорное время составляет 48 секунд, резидентная память остается постоянной на уровне 52,5 мб, переключатели состояния между Uninterubtible а также running - MCP_infiltrator
@MCP_infiltrator, это нормально. Для этой команды нет причин использовать значительный процессор или память, и если вы удалите несколько гигабайт файлов, это может возраст, Вы также можете попробовать запустить rm -rfv ~/.local/share/Trash/Files/ в котором будут перечислены удаляемые файлы ( -v означает «verbose»). Таким образом, вы можете быть уверены, что это что нибудь, - terdon♦
Спасибо, не знал этого. Я собираюсь остановить текущий процесс и использовать его вместо него и отчитываться - MCP_infiltrator
нет необходимости, он только что закончил, спасибо за вашу помощь, я действительно ценю это. - MCP_infiltrator