Perché non dovresti interpretare l’output di ls(1)
Il comando ls(1) è utile per mostrare gli attributi di un singolo file, ma presenta problemi significativi quando viene utilizzato per ottenere un elenco di file. Unix permette l’uso di quasi qualsiasi carattere in un nome di file, inclusi spazi, newline, virgole e pipe. In modalità predefinita, ls separa i nomi dei file con newline, causando confusione con file che contengono newline nei loro nomi. Molte implementazioni di ls non offrono la possibilità di terminare i nomi dei file con caratteri NUL invece di newline. Questo rende impossibile ottenere un elenco di nomi di file in modo sicuro e portabile con ls. Non è possibile determinare con certezza quali parti dell’output costituiscono un nome di file.