Hmm. popatrzyłem.. i gdyby nie to, że ls wyrównuje spacjami do równych kolumn. (i nie znalazłem opcji, żeby to zmienić), to można by było cutem to wyciągnąć. Tak.. mam propozycję (niekoniecznie elegancką) jak wyciągnąć nazwę z ls -lQ --quotind-stype=shell-always:
ls -lQ --quoting-style=shell-always|sed "s/^.*'\\(.*\\)'\\$/\\1/"
Na pewno mozna też jakimiś wewnętrznymi funkcjami basha próbować. Ale w tecj chwili nie mam czasu kombinować.
-- EDIT
Wymyśliłem jak usunąć te wielokrotne spacje.
ls -l|sed 's/ \\{1,\\}/ /g'
Dalej przepuszczasz to przez cut "-d " pobierając odpowiednią grupę pól. (uwaga: opcja "-d " musi być wzięta w cudzysłów lub spacja musi być poprzedzona backslashem, bo inaczej bash potraktuje tę spację jako separator opcji)