LINUX.ORG.RU
ФорумTalks

[Разморозка] Исключение для rm -rf *


0

1

Помнится, давно (года два назад) создавал тему об исключениях при удалении. То бишь - удалить всё, кроме. Но так и не докопался до истины. А сегодня просто, ну ради интереса попробовал:

rm -rf [!слово-исключение]*

И оно сработало. Приятно.

Наверняка боян, но вдруг полезно кому-нибудь будет.

★★★
Ответ на: комментарий от Zenom

> Нет, man 7 glob

Он самый. Просто до этого как-то не заморачивался ;)

VirRaa ★★★
() автор топика

а я бы побоялся эксперименитровать с rm -rf

кстати, не уверен что это везде сработает

WerNA ★★★★★
()

Отлично. А то недавно я как раз такой велосипед через grep -v изобретал.

Когда уже полноценные regexp-выражения запилят как расширение над glob-подстановками...

geekless ★★
()

Э нет, рано радовались.

man 7 glob

An expression "[!...]" matches a single character, namely any character that is not matched by the expression obtained by  removing  the  first  '!'  from  it.   (Thus,
       "[!]a-]" matches any single character except ']', 'a' and '-'.)

То есть это просто то же самое, что и [^...].

geekless ★★
()
Ответ на: комментарий от geekless
$ shopt -s extglob
$ rm -rf !(*.php|*.php5)

удалить все кроме *.php и *.php5

redbaron ★★
()
Ответ на: комментарий от redbaron

А можно пример живой? например удалить все кроме *.php ?

vir@cornholio ~/Test $ touch {1.php,2.php,a.php5,3.gif,4.jpeg}
vir@cornholio ~/Test $ ls
1.php  2.php  3.gif  4.jpeg  a.php5
vir@cornholio ~/Test $ rm -rf !(*.php)
vir@cornholio ~/Test $ ls
1.php  2.php
VirRaa ★★★
() автор топика
Ответ на: комментарий от fractaler

> Да, chroot действительно спасёт, хотя придётся держать экспериментальный корень с программами и либами.

Ну держать его для таких экспериментов, как описано выше - это, имхо, паранойя, всё же ;)

VirRaa ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.