Руководство пользователя Linux


Руководство пользователя Linux - стр. 105


Остальные действия могут быть разделены на две большие категории;

- Действия, которые что-то печатают. Наиболее простое из них - действие по умолчанию команды find - это -print, которое просто печатает имя файла(ов) в соответствии с другими условиями в командной

- 142 -

строке, и возвращает истину. Простыми вариантами -print является -fprint file, который использует file вместо стандартного вывода; -ls печатает текущий файл в том же формате, что и ls -dils; -printf format ведет себя более или менее также как функция С printf(), таким образом, вы можете задавать формат вывода; -fprintf file format делает то же самое, но записывет в файл. Эти действия тоже возвращают истину.

- Действия, которые что-то исполняют. Их синтаксис немного странный, но они широко используются, так что, пожалуйста, обратите на них внимание.

-exec command (команда) \; команда выполняется, и действие возвращает истину, если ее код возвpата 0, то есть выполнилась нормально. Причина, чтобы писать '\;' - скорее логическая: find не знает, где заканчивается команда, и хитрость с помещением действия exec в конец команды, тут не проходит. Самый хороший способ сообщить конец команды - использовать символ ';', но, конечно, сама точка с запятой в командной строке будет "съедена" shell'ом и не будет передана find. Также надо запомнить, как задавать имя текущего файла в команде. Это делается при помощи строки {}. В некоторых старых версиях find требуется чтобы {} были окpужен пpобелами - не очень то удобно, когда вам нужен, например, путь целиком, а не только имя файла - но в find'е GNU {} может быть в любом месте стpоки, составляющей команду. И не должно быть опущено или заключено в кавычки, конечно, вы спpосите? Забавно, мне никогда не приходилось делать это ни под tcsh, ни под bash (sh не рассматривает { и } как специальные символы, поэтому это не является пpоблемой). Идея в том, что shell "знает", что {} не является опцией, имеющей какой-то смысл, поэтому shell не пытается ее "pасшить", к счастью для find, котоpый получает {} нетpонутой.




Начало  Назад  Вперед