Не существует общего решения, кроме как заключить в кавычки каждый метасимвол оболочки и пробел с обратной косой чертой.Если вы цитируете «одинарные кавычки», возникает проблема с именами, содержащими одну кавычку.Если вы цитируете «двойные кавычки», возникает проблема с именами, содержащими двойные кавычки и знаки доллара.И, конечно, есть имена, содержащие оба ... Но вы можете заключать части имен в разные стили цитирования:
ls "name with spaces & a single quote->'"' and name with "quotes" and $'
Обратите внимание, как вторая двойная кавычка завершает первую часть, а следующий символ - одиночныйцитата, которая цитирует остаток.Там!Процитировал имя, содержащее обе кавычки!Как только оболочка выполнила удаление кавычек (всегда последняя), ls
увидит
name with spaces & a single quote->' and name with "quotes" and $
в качестве одного аргумента.