<Предыдущая | Содержание: | Следующая>
Поиск уродливых имен файлов с помощью find
Ассоциация найдите команда поддерживает проверку на основе регулярного выражения. При использовании регулярных выражений в найдите против GREP. В то время как GREP напечатает строку, когда строка содержит строка, соответствующая выражению, найдите требует, чтобы имя пути точно соответствует регулярное выражение. В следующем примере мы будем использовать найдите с регулярным выражением, чтобы найти каждое имя пути, содержащее любой символ, не входящий в следующий набор:
[-_./0-9a-zA-Z]
Такое сканирование выявит пути, содержащие пробелы и другие потенциально оскорбительные символы:
[я @ linuxbox ~] $ найти . -regex '. * [^ -_. / 0-9a-zA-Z]. *'
[я @ linuxbox ~] $ найти . -regex '. * [^ -_. / 0-9a-zA-Z]. *'
Из-за требования точного совпадения полного имени пути мы используем .* на обоих концах выражения, чтобы соответствовать нулю или более экземплярам любого символа. В середине выражения мы используем выражение с отрицательными скобками, содержащее наш набор допустимых символов имени пути.