grazie per la risposta dettagliata!

ero arrivato ad alcune conclusioni ma nn così precise.
facendo questo tentativo mi sono infatti accorto che i vari stream e buffer mi servono solo per mostrare l'output di ls (in questo caso).
infatti:
codice:
    public static void main(String[] args) throws IOException {
        String cmd = "mkdir /home/matte/Desktop/a";
        String cmdls = "ls -l /home/matte/Desktop";
        Process procChmod = Runtime.getRuntime().exec(cmd);
        Process proc = Runtime.getRuntime().exec(cmdls);
        InputStream input = proc.getInputStream();
        InputStreamReader reader = new InputStreamReader(input);
        BufferedReader br = new BufferedReader(reader);
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
        input.close();
    }
questo funziona.
il programmino che ho in mente avrà un solo output, il risultato dei permessi impostati o in caso l'errore se nn si hanno permessi sufficienti.

ho visto però che c'è anche ProcessBuilder ma nn ho ben capito la differenza.
quando usare Process o PB??