Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Ciclo for di shell

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    79

    Ciclo for di shell

    Salve a tutti, ho un problema riguardante il comando seguente:

    codice:
    for d in $(ls); do du -hs $d; done 2> /dev/null
    in pratica è un esercizio di sistemi operativi che chiede di visualizzare le directory più voluminose presenti sul file system.
    il problema è che non ho ben capito la struttura del costrutto, soprattutto a cosa serve d e come mai c'è $(ls), non c'è già il comando du che stampa il contenuto della varie cartelle? a cosa serve quell'ls?
    mentre 2> /dev/null se non sbaglio dovrebbe redirigere lo standard error sul file null giusto??

    grazie

  2. #2
    Il comando ls restituisce la lista di tutti i file presenti nella directory corrente.

    Il for serve a scorrere ogni elemento della lista.

    Con du -hs $d ottieni il nome del file sotto analisi e la sua dimensione in formato --human-readable. Io ti consiglio di usare du -bs $d | cut -f1, dove l'opzione -bs restituisce la dimensione in byte ideale per eseguire delle comparazioni, mentre cut -f1 estrapola solo la prima colonna dell'input.

    Per controllare se il file è una directory puoi usare ​test -d $d.
    Dante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.