Подробно останавливаясь на одном из комментариев, я не думаю, что Вы делаете то, что Вы думаете, что делаете.
Сначала я создал огромную сумму файлов, для моделирования ситуации:
$ mkdir foo
$ cd foo/
$ for X in $(seq 1 1000);do touch {1..1000}_$X; done
Затем я попробовал то, что я ожидал приводить к сбою, и что это кажется, что Вы делаете в вопросе:
$ rm -r foo/*
bash: /bin/rm: Argument list too long
Но это действительно работает:
$ rm -r foo/
$ ls foo
ls: cannot access foo: No such file or directory
Один путь, который будет работать в большинстве оболочек (не просто bash
) должен удостовериться, что Escape появляется в тексте сценария оболочки.
Если Вы используете vim
, затем необходимо будет все еще ввести Управление-VEscape для ввода Escape, потому что иначе Escape изменяется от режима вставки назад к командному режиму.
Другие редакторы могут или не могут иметь причуд для создания этого легче — или тяжелее.
Если Вы используете bash
и не заботьтесь о мобильности, затем существуют другие доступные опции, с помощью \e
нотация для Escape (см. bash
руководство по ANSI-C, Заключающему в кавычки). Например:
escape=$'\e'
Это не будет работать со всеми другими оболочками, все же.
vim
. – 24.02.2013, 02:16