Afficher les tailles de fichiers lisibles par l'utilisateur dans le terminal OSX
sous Linux, je tape du -sh * | sort -rh
pour afficher les fichiers et les répertoires de mon répertoire courant, triés du plus grand au plus petit.
Comment puis-je faire cela dans le terminal OSX, de préférence sans installer quoi que ce soit de plus?
3 réponses
Vous ne le faites pas. Sauf si vous installez GNU Coreutils.
Avec brew par exemple
brew install coreutils
et ensuite vous obtenez la commande gsort qui supporte l'option-H.
une meilleure réponse à cette question 2 ans plus tard (en utilisant le Terminal dans OSX 10.11) est simplement d'ajouter-h à la commande ls pour obtenir des tailles de fichier lisibles par l'humain.
d'après ce que j'ai compris dans les éditions ultérieures D'OSX, il n'est pas nécessaire d'utiliser brew pour installer coreutils. (Si je me trompe, que quelqu'un me corrige.)
par exemple, pour obtenir une liste de fichiers dans le répertoire courant, en une seule colonne, et en montrant les détails du fichier, entrez:
ls -l
Si vous voulez lisible par l'homme les tailles de fichier, il suffit d'ajouter un "h":
ls -hl
ou
ls -lh
les lettres après Le "-" peut être dans n'importe quel ordre dans cette instance.
si, comme l'indique le détail de la question, on veut que la liste des fichiers soit classée par taille de fichier, la plus grande taille de fichier en haut, alors ajouter un "S"en majuscule:
ls -lhS
Si vous voulez des fichiers invisibles répertoriés ainsi, puis ajouter un "a":
ls -alhS
Encore une fois les lettres après le "-" peut être dans n'importe quel ordre.
si vous créez et éditez souvent des fichiers dans le répertoire courant, peut-être parce que vous êtes en train de travailler sur une tâche ou un projet, une combinaison alternative est:
ls -hltur
cette liste répertorie les fichiers au format taille lisible par l'utilisateur, dans une longue liste dans la fenêtre du Terminal.
Le "t" indique l'ordre de tri des fichiers selon leur date de dernière modification/temps.
le" u " change alors légèrement pour utiliser le temps les fichiers ont été consultés en dernier lieu, plutôt que modifiés en dernier.
le" r " inverse alors l'ordre de la liste de sorte que les fichiers plus récemment consultés ou 'touchés' soient listés en dernier, en bas de la liste.
la combinaison complète signifie que vous avez une liste détaillée, avec les fichiers que vous avez lus, ouverts ou modifiés récemment, ou qui ont été 'touchés' de la même manière par un processus que vous avez exécuté ou un autre processus, tous en bas de la liste.
Donc même si la liste dans votre répertoire courant est longue de sorte que le début de la liste ne peut plus être lu sans défiler vers le haut, les fichiers avec lesquels vous avez interagi resteront probablement visibles immédiatement au-dessus de votre prochain, prêt à entrer, ligne de commande.
Ces options, et plus encore, dans le man (manuel) de la page pour la commande ls:
man ls
si vous souhaitez lister des fichiers régulièrement dans l'un des formats ci-dessus, ou un autre de votre choix à la lecture l'homme page, vous pouvez ajouter un alias à votre .bash_profile fichier (par exemple, en utilisant nano pour ouvrir ce fichier, et le faire pendant que vous êtes dans votre répertoire d'accueil).
Par exemple, pour répondre à ce qui est désiré par l'affiche originale de la question, ouvrez le fichier et sur une nouvelle ligne ajouter:
alias lss='ls -hlS'
ensuite, en sauvegardant le fichier et en sortant de la fenêtre du Terminal et en ouvrant une nouvelle fenêtre du Terminal, taper "lss" dans la ligne de commande devrait fournir que que vous recherchez régulièrement lors de la liste des fichiers.
si vous ne savez pas comment utiliser nano, faites d'abord apparaître sa page man (ual) en tapant
man nano
La page de manuel vous expliquera comment utiliser nano.
pour sortir d'une page de manuel et revenir à l'endroit où vous pouvez entrer une commande, appuyez sur la touche "q".
la ligne de commande ci-dessous énumère tous les fichiers et répertoires du répertoire courant triés en fonction de leur taille (de la plus grande à la plus petite). La sortie est formaté
ls -S -lh | awk '{print , }'