У меня есть файл ksh, где у меня есть следующие строки кода
find . \ \( \ -name \*.tar -o \ -name \*.gz -o \ -name log.\* -o \ -name out.\* \ \) \
Мне интересно знать цель этих обратных косых черт.Это для того, чтобы избежать чего-то?
Обратная косая черта имеет здесь две цели:
В конце строки: пусть оболочка игнорирует символ новой строки, т.е. команда продолжается на следующей строке.Без него оболочка будет думать, что новая команда начинается со следующей строки.
Внутри строки: экранируйте следующий символ, чтобы оболочка не анализировала его.Эти символы обычно имеют особое значение для оболочки.Обратная косая черта удаляет это значение, так что символ передается в find «как есть».Подробнее об этом читайте здесь: Какие символы необходимо экранировать при использовании Bash? .Речь идет о Bash, но KSH похож.
find
переписано в одну строку:
find . \( -name "*.tar" -o -name "*.gz" -o -name "log.*" -o -name "out.*" \)
Btw. last -o (должен следовать параметр) и обратный слеш неправильны в вашем примере