13. Средства навигации, поиска в Unix (навигация в ф.с., информация о системе, поиск файлов и строк в них).

Команды перемещения

Подключение других устройств(дисковода, CDROM)

Чтобы подключить устройство (дисковод, CD-ROM, раздел вичестера, сетевой диск), нужно указать место, куда будет отображаться его содержимое. Это место называется точка монтирования. Точка монтирования - это обычный каталог. После подключения (в терминах Unix - монтирования) каталог будет содержать файлы, расположенные на устройстве. Список подключенных устройств и монтирование - команда mount(8). Обычно поключаемые устройства отображаются на каталог /mnt. Например /mnt/cdrom, /mnt/floppy. Отключение (размонтирование) производит отсоединение устройства от дерева каталогов. Команда umount(8).

Копирование, удаление, перемещение файлов и каталогов

Информация о системе

Команды поиска GREP и FIND

Команда grep/egrep

“фильтрует” строки - оставляя только “подходящие” под шаблон

egrep шаблон  [ file ... ]

Вывести всех пользователей, имена которых начинаются с букв a,b,e,d

cat /etc/passwd | grep "^[abed].*"

Команда find

find рекурсивно обходит указанные каталоги и файлы, проверяет для них выполнение указанных условий и может вдобавок выпол- нять с найденными файлами указанные действия. Например, самое простое действие - распечатать имя файла.

find   файл [ ... ]   ключи/условия/действия

    Ключи-условия команды find:

-name “.c” - простое имя подходит под шаблон *.c -type f - брать только обыкновенные файлы -type d - брать только каталоги -size +500 - файлы размером БОЛЬШЕ 500512 байт -mtime -3 - дата модификации МЕНЬШЕ 3-х дней -newer filename - дата модификации нашего файла МЕНЬШЕ, чем у заданного файла filename

ВНИМАНИЕ: Команда find использует стандартные SHELL’овские шаблоны. Команда grep использует шаблоны другого формата, называемые регулярными выражениями.

    Ключи-действия команды find

-print - просто распечатать маршрутное имя файла -exec команда над файлом {} \;

    Пример.

Напечатать имена всех обыкновенных Си-шных файлов, изменившихся за последние 4 дня в текущем каталоге и его подкаталогах.

find . -type f -mtime -4 -print

Уничтожить все файлы с окончаниями *.bu, *%, которые не меня- лись больше месяца.

find   / \( -name "*.bu" -o -name "*%" \) -type f    \
-atime +30 -exec  rm  {} \;

запись “rm {} \;” - обозначает команду Unix, которая будет вы- полняться для всех таких найденных файлов. Вместо значка “{}” будет подставляться каждый раз имя найденного файла. Естествен- но, что таким образом мы их все и уничтожим.