Как включить заключенную в кавычки переменную в кавычки

[12147].[1168770] = текущий каталог, т.е. искать текущий каталог и любые каталоги под ним. Для поиска по домашним каталогам используйте [1168771]/home[1168772]. Для поиска в домашнем каталоге используйте [1168773]~/[1168774]. Для поиска в каталоге пользователя "foo" используйте [1168775]~foo/[1168776]. Для поиска [1168777] всего [1168778] от корня до конца используйте [1168779]/[1168780].[12148]NB!:[1168782] Применяются разрешения! Если вы не имеете права расшифровываться в определенный каталог (например, в домашний каталог другого пользователя), то [1168783]find[1168784] тоже не сможет этого сделать! У [1168785]root[1168786]-пользователя нет такого глупого ограничения, но "с большой силой приходит большая ответственность" тоже.[12149]-тип d|f[1168788] = Говорит найти, чтобы посмотреть на файлы определенного "типа", например, файл, каталог, сокет, символическую ссылку, именованный-pipe, ... . A [1168789]f[1168790] указывает, что искомый тип - это файл, а [1168791]d[1168792] указывает, что вы хотите, чтобы [1168793]find[1168794] вернул каталоги.[12150]Обычно [1168795]find[1168796] просто перечисляет найденные файлы, это неявная директива [1168797]-print[1168798]. Однако здесь мы хотим выполнить команду (здесь [1168799]chmod[1168800]) на файлы/директории, которые она находит. Для этого можно использовать директивы [1168801]-exec[1168802] или [1168803]-ok[1168804]. [1168805]-ok[1168806] сначала спросит "да" или "нет" перед выполнением команды.[12151]Команда, которая должна быть выполнена, начинается сразу после [1168807]-exec[1168808] и продолжается до тех пор, пока [1168809]find[1168810] не встретит [1168811];[1168812] (точка с запятой). К сожалению, точка с запятой имеет особое значение и для оболочки ([1168813]bash[1168814] и др.) - она используется оболочкой для группировки команд в одну строку (например, [1168815]command1 ; command2[1168816]). Поэтому мы должны "процитировать" точку с запятой, чтобы оболочка не "увидела" ее до того, как [1168817] найдет [1168818]. Оболочка принимает три формы цитирования: Двойные ("...") и одинарные ('...') кавычки обычно используются для строк - мы можем использовать любую из них, чтобы процитировать точку с запятой. Однако, когда вы хотите процитировать только один символ, как здесь, более распространена третья форма кавычек - обратная косая черта (\). В результате получаем [1168819]\;[1168820]. (Если вы поместите свою [1168821]-команду в файл - т.е. создадите скрипт - вы часто можете отказаться от [1168823]\;[1168824] и просто использовать [1168825];[1168826], потому что оболочка не расширяет скрипт так, как это делает командная строка.)[12152]Часто команде, которую мы хотим, чтобы [1168827]find[1168828] для выполнения, нужно имя файла [1168829]find[1168830] найденного. [1168831]{}[1168832] используется в качестве запоминающего устройства для найденного имени файла. Часто бывает полезно заключить имя файла в кавычки - [1168833]"{}"[1168834] - для того, чтобы команда обрабатывала имена файлов, содержащие пробелы, как одно имя файла. [12153] Для файлов я нашел, что [1168835]chmod u=rw,go=r {}[1168836] или [1168837]chmod u=rw,go= {}[1168838] работает лучше всего, в то время как в каталогах следует использовать [1168839]chmod u=rwx,go=rx {}[1168840] или [1168841]chmod u=rwx,go= {}[1168842] (в зависимости от уровня паранойи).[1168443].
1
04.07.2014, 02:31
1 ответ

используем escape-символ \ вот так:

./mjpg_streamer -i \"./input_uvc.so -r 320x240\" -o \"./output_http.so -w ./www\"
4
27.01.2020, 23:21

Теги

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