Книга: Искусство программирования на языке сценариев командной оболочки
Пример 12-2. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.
Пример 12-2. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.
#!/bin/bash
# Удаление файлов в текущем каталоге, чьи имена содержат недопустимые символы.
for filename in *
do
badname=`echo "$filename" | sed -n /[+{;"=?~()<>&*|$]/p`
# Недопустимые символы в именах файлов: + { ; " = ? ~ ( ) < > & * | $
rm $badname 2>/dev/null # Сообщения об ошибках "выстреливаются" в никуда.
done
# Теперь "позаботимся" о файлах, чьи имена содержат пробельные символы.
find . -name "* *" -exec rm -f {} ;
# На место "{}", find подставит полное имя файла.
# Символ '' указывает на то, что ';' интерпретируется как обычный символ, а не как конец команды.
exit 0
#---------------------------------------------------------------------
# Строки, приведенные ниже, не будут выполнены, т.к. выше стоит команда "exit".
# Альтернативный вариант сценария:
find . -name '*[+{;"=?~()<>&*|$ ]*' -exec rm -f '{}' ;
exit 0
# (Спасибо S.C.)
- Пример 12-2. Badname, удаление файлов в текущем каталоге, имена которых содержат недопустимые символы и пробелы.
- Пример 12-3. Удаление файла по его номеру inode
- Пример 12-4. Использование команды xargs для мониторинга системного журнала
- Пример 12-5. copydir, копирование файлов из текущего каталога в другое место, с помощью xargs
- Пример 12-6. Пример работы с expr
- Пример установочного скрипта
- Пример из практики
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Создание файлов с блокировкой
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Имена индексов ограничений
- Примеры получения статистики
- Пример применения метода «пять почему»
- Имена объектов длиной 68 символов
- Рекомендуемое расширение для файлов баз данных - *.ib
- Пример 12-8. Частота встречаемости отдельных слов