O problema é que o awk está analisando a entrada com espaços em branco como separadores de campo. Isso cria problemas quando você tem espaços em branco como parte de um campo.
Em vez de analisar a saída de ls
, você pode usar stat(1)
para obter o que deseja, junto com a opção de shell bash "dotglob".
shopt -s dotglob # Enable * to match files starting with a dot
stat -c $'%A\t%U\t%s\t%Y\t%n' *
A string de formatação exibe os campos desejados no formato desejado. O uso de $ '...' permite que o \ t seja expandido para uma aba. Você poderia inserir um caractere de tabulação real e soltar o $ inicial se você quisesse.
Leia a página bash(1)
man para detalhes sobre o dotglob e preste atenção no GLOBIGNORE. Leia a página stat(1)
man para o que você pode colocar em uma string de formato.