Je sais que je peux utiliser ls -lat
pour savoir combien d'octets ont un fichier, puis multiplier par 8 pour savoir combien de bits. Mais est-ce possible dans une seule ligne de commande?
bash
shell
command-line
filesystems
files
Felipe
la source
la source
Réponses:
Avec GNU
du
:la source
bc
-awk
peut faire des maths lui-même:du -b FILE | awk '{print $1 * 8}
wc -c < FILE
pour un équivalent portable (pour les fichiers non réguliers, cela a cependant pour effet secondaire de les lire)Une solution shell + GNU coreutils:
L'
-c%s
option destat
retourne uniquement la taille du fichier en octets, éliminant ainsi tout besoin de traitement de texte supplémentaire. Cette syntaxe est prise en charge par GNU coreutils et devrait donc fonctionner sous la plupart des distributions Linux.Par exception sur linux, si l'on exécute zsh avec le module zsh / stat optionnel, alors il faut spécifier un chemin pour obtenir les coreutils GNU:
la source
Avec GNU
find
(antérieur à GNUstat
de plusieurs décennies):Relativement portable:
la source
C'est possible sur une seule ligne, car vous pouvez mettre plusieurs commandes sur une même ligne, par exemple connectées par des tuyaux ou des substitutions de commande:
(Merci @frostschutz pour la mise à jour).
la source
ZSize: 5
par exemplestat -c %s FILE
d'imprimer la taille directement, au lieu de lased
?Un seul fichier:
Fichiers multiples:
Celui-ci fonctionne également pour un seul fichier. Il n'est cependant pas complètement à l'épreuve des balles, voir le commentaire de Stéphane .
Ce sont des commandes conformes à la norme POSIX.
la source
a b
fichier sous la formea b
(séquences de blancs convertis en un seul espace, blancs de fin supprimés).NR == 1