Вывод команды ls -q
вообще не является глобальным объектом. Он использует ?
для обозначения «Здесь есть символ, который нельзя отобразить напрямую». В глобусах используется ?
для обозначения «Здесь разрешен любой символ».
У глобусов есть другие специальные символы (как минимум *
и []
, а внутри пары []
их больше). Ни один из них не экранируется с помощью ls -q
.
$ touch x '[x]'
$ ls -1q
[x]
x
Если вы обработаете вывод ls -1q
, там есть набор глобусов и расширите их, вы не только получите x
дважды, но и пропустите [x ]
полностью. Как глобус, он не соответствует себе как строке.
ls -q
предназначена для защиты ваших глаз и / или терминала от сумасшедших персонажей, а не для создания чего-то, что вы можете передать обратно в оболочку.