Страница Вы ссылаетесь (http://intgat.tigress.co.uk/rmy/uml/index.html) на состояния:
The utility also works on ext3 or ext4 filesystems.
Таким образом, я не уверен, где Вы получаете это, это не работает над ext4 файловыми системами.
Обратите внимание, что zerofree утилита отличается от zerofree патча ядра, который упоминается на той же странице (который действительно, кажется, не имеет версию для ext4).
Обновление: По крайней мере, в случае VirtualBox, я не думаю, что Вам нужна эта утилита вообще. В моем тестировании, на запасе установка Ubuntu 10.04 на ext4, можно просто обнулить файловую систему как так:
$ dd if=/dev/zero of=test.file
... ожидайте виртуального диска для заполнения, затем
$ rm test.file
и выключенный VM. Затем на Вашем хосте VirtualBox сделайте:
$ VBoxManage modifyhd --compact yourImage.vdi
и Вы восстановите все неиспользуемое место.
Попробуйте это:
sed -i.bak "s:^.*\(\$cache_directory = \)\('./cache'\):\1$new_cache_directory:" infile
Таким образом, я предполагаю, что Вы хотите заменить 'кэш' содержанием упомянутой переменной, не с ее именем:
sed 's#^$cache_directory = ../cache.;#$cache_directory = '$new_cache_directory'#' script.php
Таким образом, у Вас есть различные проблемы для решения: Обычно sed управляет, чтобы наклонные черты использования разделили части: 's/foo/bar / '. При контакте с путями это является тревожащим, но мы можем использовать много разделителей - они просто неявно объявляются в следующем'.
Проблема 2 подобна. Мы часто указываем команду в одинарных кавычках:
sed 'command' file
Но здесь у нас есть апострофы приблизительно./кэшир - что сделать? Одна идея была бы, для использования
sed "command" file
вместо этого, который часто работает, но не здесь. Апострофы препятствуют Знаку доллара быть интерпретированными, но кавычки не предотвратили бы это. Часто, Вы даже не нуждаетесь в апострофах и можете записать:
sed s/standart/standard/g sample.txt
но снова, у Вас есть $cache_directory как переменная в команде, которая была бы интерпретирована. Таким образом, я просто заменяю апострофы знаком шутника, точкой, и был бы действительно удивлен, если некоторое другое выражение будет соответствовать той части: ../cache.
как xy/cachei
- не очень вероятный, не так ли?
Но Вам нравится, когда $new_cache_directory заменяется содержанием переменной, таким образом, я выключаю маскирование с = '
, вставьте переменную и включите маскирование снова для окончания команды с '# '.
sed 'cmd' file.in > file.out
, но заменять файл, Вы используете sed -i 'cmd' file
. Но последние работы только однажды, таким образом, я думал, что требуется сохранить источник и знать о передаче по каналу вывода где-нибудь.
– user unknown
26.05.2011, 15:38
$new_cache_directory
– Prince John Wesley 26.05.2011, 09:13