Есть ли способ сделать 'ls -R | grep & ldquo; aname & rdquo; * | гт; удалить несколько файлов в нескольких каталогах

Я установил (скомпилированный) изумруд. Команда make uninstall не работала (нет make-файла, так как это всего лишь скрипт). Поэтому я решил удалить файл вручную. Но там было много файлов.

Я пробовал кое-что, но это не сработало. Поэтому я пришел сюда, чтобы попросить совета.

  • Есть ли команда с ls -R | grep blabla*, которую я могу добавить для отображения каталога файлов (он отображает только имя файла)
  • Существует ли истина ls -R | grep bla* | rm?
6
задан 17 January 2012 в 15:53

3 ответа

Если «aname» будет начальной частью имени файла, оно будет из текущего каталога:

find -name "aname" -delete 

Кстати:

grep "bla"* somewhere

почти всегда ложно , поскольку grep уже делает частичные совпадения, а это значит, что он находит bla, blafasel и xybla просто

grep bla somewhere

Удалена старая часть ответа из-за недопонимания:

Из текущий каталог, если вы ищете слово «aname» во всех файлах, вы можете просто использовать:

find -exec grep "aname" {} ";" -delete 

0
ответ дан 17 January 2012 в 15:53

Между другими ответами: вы можете вызвать rm без необходимости использования программы xargs. Фактически вы обычно можете использовать опцию exec для find вместо xargs.

Чтобы вызвать rm как можно меньше раз, при больших пакетах файлов:

find /path/to/dir -name "*name*" -exec rm {} +

Чтобы вызвать rm один раз для каждого файла:

find /path/to/dir -name "*name*" -exec rm {} ";"

Есть также более сложные параметры для find, которые изменятся на каталог перед выполнением команды.

0
ответ дан 17 January 2012 в 15:53

То, что вы ищете, это комбинация xargs, find и rm.

find создаст список всех файлов, соответствующих вашим условиям, а затем запишет их (завершено нулем) в stdout, который будет передан в xargs. xargs будет принимать строки с нулевым символом в конце и использовать их в качестве аргументов для rm.

find -L /path/to/dir -name "*name*" -print0 |xargs -0 -r  rm

источник: http://linuxcommando.blogspot.com/2007/10/find-xargs-pipe.html

0
ответ дан 17 January 2012 в 15:53

Другие вопросы по тегам:

Похожие вопросы: