Удаление файлов определенного дополнительного Unix

Замечательно, что Вы спрашиваете это - многие люди просто хотят сделать задание и тем самым представить целый набор уязвимостей на основаниях это "А-а-а... Это будет прекрасно".

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

Пользуйтесь библиотекой с открытым исходным кодом, где можно найти, что каждый в основном, что я достигаю. (Никогда не используйте закрытые приложения защиты - они все обречены перестать работать - и я могу поставить свою подпись на том комментарии).

0
задан 7 October 2009 в 13:02
5 ответов

Удостоверьтесь, что Вы довольны списком сначала.

find www -name '.svn' -type d -ls

Ограничьте каталогами. SVN всегда называет их .svn.

find www -depth -name '.svn' -type d -exec rm -rf {} \;
3
ответ дан 4 December 2019 в 12:12
  • 1
    OP попросили относительно " файлы определенного extension" , не (только) каталоги. –  PEra 7 October 2009 в 13:26
  • 2
    Я думаю, что OP мог бы быть перепутан. Они также сказали " я хочу удалить все .svn папки из project". учитывая, которые определяют объем, я думаю, что что-либо как -iname '*.svn' напрашивается на неприятности. –  Dan Carley 7 October 2009 в 13:35
  • 3
    Можно добавить - глубина в начале командной строки и Вас won' t получают ошибки. Вы могли бы также смочь использовать - удаляют, а не - должностное лицо, но я don' t знают, как это будет вести себя с каталогами. –  David Pashley 7 October 2009 в 16:13
  • 4
    -delete doesn' t играют хорошо с каталогами. Хороший запрос -depth. –  Dan Carley 7 October 2009 в 17:56

chdir к рабочий каталог и выполненный:


find . -iname '.svn' -exec rm -fr {} \;
ИЛИ можно указать каталог пути как это:


find path -iname '.svn' -exec rm -fr {} \;
0
ответ дан 4 December 2019 в 12:12
  • 1
    OP попросили " файлы определенного extension" не (только) каталоги. –  PEra 7 October 2009 в 13:26

Мне нравится использовать команду xargs, я нахожу это более интуитивным, таким образом:

find www -name '.svn' -type d -print0 | xargs -0 rm -r

если Вы хотите удалить .svn папки, если Вы интересуетесь удалением файлов:

find www -name '.svn' -type f -print0 | xargs -0 rm

или можно удалить все:

find www -name '.svn' -print0 | xargs -0 rm -r

если Вы хотите быть уверенными в том, что Вы удалите, запустить команду находки без xargs :-)

удачи!

2
ответ дан 4 December 2019 в 12:12
  • 1
    Вы действительно хотите использовать, находят....-print0 | xargs-0..., если you' ре, собирающееся сделать это, иначе располагает с интервалами, может вызвать Вас проблемы. –  David Pashley 7 October 2009 в 16:16

не уверенный, если это - лучший способ избавиться от репозитория, но это должно сделать то, в чем Вы нуждаетесь:

find www -name "*.svn" -exec rm -rfv {} \;

Обновление: вот хорошее описание BSD's find.

-1
ответ дан 4 December 2019 в 12:12
  • 1
    это удалило бы также foo.svn, который не является требуемым поведением –  drAlberT 7 October 2009 в 13:18
  • 2
    Несомненно, это было точно что OP, относительно которого попросили: " как я рекурсивно удаляю файлы определенного расширения ? " . Поэтому удалите вниз-голосование... –  PEra 7 October 2009 в 13:25

Путем ввода:

rm -Rf www/ "*.svn"

Вы просите удалять www папку и каждый *.svn файлы.

То, что Вы, конечно, хотите, должно удалить каждый *.svn в www папке, таким образом, необходимо использовать:

rm -Rf www/*.svn

(без пространства)

0
ответ дан 4 December 2019 в 12:12
  • 1
    Этот doesn' t работают рекурсивно. По-видимому, www каталог имеет другие каталоги, которые также содержат .svn каталог. –  Kamil Kisiel 8 October 2009 в 19:26

Теги

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