Le meilleur que j'ai pu trouver via Google / man ls
était:
ls -l | grep -v '^total'
Y a-t-il quelque chose qui me manque dans les drapeaux ls
?
De plus, pourquoi la taille totale est-elle en Ko, quel que soit l'indicateur -h? gratter cela, semble que ce soit le cas, je ne sais pas ce que je voyais alors.
ls -l | tail -n+2
, pour le reste je n'ai pas de réponse.lsl
. Seulement 3 lettres;) oh et ls -lh me montrent des tailles de style 1,2K.Réponses:
En regardant dans le code source de
coreutils
, j'ai découvert qu'iltotal
sera toujours affiché lors de l'utilisation de l'-l
option sur les répertoires .L'utilisation de l'
-d
option pour répertorier les entrées au lieu du contenu du répertoire se masquetotal
. Mais si vous exécutez cela sans arguments (ou sur un répertoire), cela affichera simplement le répertoire et non son contenu. Par conséquent, vous avez besoin de caractères génériques.*
correspond à tous les fichiers et.*
correspond également aux fichiers cachés (ce qui correspond à l'-a
option):Quant à l'
-h
option, elle fonctionne pour moi. 1118360 octets apparaissent comme 1,1M. Les fichiers inférieurs à 1024 s'affichent en octets.la source
ls
page de manuel à la lettre ou considérer ceci:ls /
peut être interprété comme "lister l'entrée/
s'il s'agit d'un fichier ou le contenu du répertoire/
si c'est un répertoire". L'utilisation-d
supprime la dernière condition et imprime toujours l'entrée au lieu du contenu du répertoire. Cela s'applique peu importe si un chemin est un fichier ou un répertoire.L'utilisation de caractères génériques pour éviter d'
ls
exécuter la liste des répertoires n'est pas optimale, car elle vous empêche d'utiliser desls
options telles que--almost-all
.Comme la suggestion d'Enzotib , le moyen le plus simple de le supprimer est de le passer
tail
à travers pour couper la première ligne. Cependant,ls
détectera que sa sortie est un canal plutôt qu'interactif, et modifiera ses valeurs par défaut de manière indésirable. Par conséquent, pour le rendre robuste, vous devez également ajouter quelques options:--color=always
: continue à montrer les couleurs--hide-control-chars
: imprimer?
dans les noms de fichiers à la place des caractères de contrôle qui pourraient gâcher la sortie de la consoleJ'ai un script
~/bin/l
(vous pouvez également utiliser un alias Bash~/.bash_aliases
):Vous pouvez également ajouter toutes les autres
ls
options que vous souhaitez par défaut, par exemple--group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash
.la source
ls -l *
Vous donnera le contenu du dossier "normalement nommé" sans le
total
. Cela pourrait convenir à vos besoins. Malheureusement, il ne vous donnera pas lesdot
fichiers préfixés. Si vous utilisez,ls -l * .*
vous obtiendrez un gâchis puisque Linux naviguera dans l'arborescence.Notez que le préfixe de point pourrait signifier le dossier ou avec un caractère générique, cela signifie le dossier ci-dessus, donc il ne vous aide pas à choisir des fichiers réguliers qui sont préfixés par un point. Cela semble avoir été une décision de conception malheureuse.
la source
Remarque: ce qui
suit ne fonctionne pas si vous avez un fichier nommé "total ...."
la source