Полоса//Комментарии Из Файлов

Свяжите монтирование, не тип файловой системы, ни параметр смонтированной файловой системы; они - параметры операции монтирования. Насколько я знаю, следующие последовательности вывода команд к чрезвычайно идентичным состояниям системы, что касается ядра:

mount /dev/foo /mnt/one; mount --bind /mnt/one /mnt/two
mount /dev/foo /mnt/two; mount --bind /mnt/two /mnt/one

Так единственный способ помнить, чем было монтирование, связывают монтирование, журнал mount команды оставлены внутри /etc/mtab. Связывание монтирует, что операция обозначается bind смонтируйте опцию (который заставляет тип файловой системы быть проигнорированным). Но mount не имеет никакой опции перечислить только файловые системы, смонтированные с определенным набором наборов опций. Поэтому необходимо сделать собственную фильтрацию.

mount | grep -E '[,(]bind[,)]'

Отметьте это /etc/mtab только полезно здесь, если это - текстовый файл, сохраняемый mount. Настраиваются некоторые дистрибутивы /etc/mtab как символьная ссылка на /proc/mounts вместо этого; /proc/mounts главным образом эквивалентно /etc/mtab но действительно имеет несколько различий, одно из которых не отслеживает, связывают, монтируется.

Одна информация, которая сохранена ядром, но не показана в /proc/mounts, когда точка монтирования только показывает часть дерева каталогов в смонтированной файловой системе. На практике это главным образом происходит с, связывают, монтируется:

mount --bind /mnt/one/sub /mnt/partial

В /proc/mounts, записи для /mnt/one и /mnt/partial имейте то же устройство, тот же тип файловой системы и те же опции. Информация это /mnt/partial только показывает часть файловой системы, в которой это базировалось /sub видимо в информации о точке монтирования для каждого процесса в /proc/$pid/mountinfo (столбец 4). Записи там похожи на это:

12 34 56:78 / /mnt/one rw,relatime - ext3 /dev/foo rw,errors=remount-ro,data=ordered
12 34 56:78 /sub /mnt/partial rw,relatime - ext3 /dev/foo rw,errors=remount-ro,data=ordered

7
24.11.2016, 22:15
2 ответа
  • 1
    Используя сам токенизатор PHP, вероятно, единственный безопасный путь; любой способ включить perl/awk/whatever будет иметь проблемы с вещами как $foo = "// you shouldn't be touching this!"; –  Michael Mrozek♦ 27.10.2010, 13:50
  • 2
    Охладитесь, сделает некоторые тесты. Кажется, то, в чем я нуждаюсь все же. Спасибо –  Adrian Schneider 28.10.2010, 21:57

Это сделает это в Perl:

//will delete all comments starting at the beginning of the line with //
perl -p -i -e "s#^//.*$##" <your php file>
//will delete all comments starting somewhere in a line with //
perl -p -i -e "s#^(.*)//.*$#\$1#" <your php file>
//will delete all comments starting somewhere in a line with /* or /**
perl -p -i -e "s#^(.*)/\*+.*$#\$1#" <your php file>
//will delete all comments starting at the beginning of the line with /* or /**
perl -p -i -e "s#^/\*+.*$##" <your php file>

Эти команды не удалят комментарии с несколькими строками, как

/**
 *
 *
 */

Возможно сделать это, но много строка regex является более трудным путем.

Также будут решения для awk, sed, Python... Но это должно также сделать это.

0
27.01.2020, 20:19
  • 1
    , что Вы также собираетесь иметь проблемы со строками, которые, оказывается, имеют "//" в них и вероятно других проблемах. –  Steven D 27.10.2010, 09:08

Теги

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