Retourner aux forums || Retourner au forum Programmation.autre

Programmation.autre : Bash : connaitre la taille d'un fichier

Posté par khan () le 22 mai 2006
0
Bonjour a tous,

Pour une fois c'est moi qui ai besoin d'aide. J'ai besoin de connaitre si la taille (en Byte/octet) d'un fichier est paire ou impaire dans un script bash.

ls me permet de recuperer facilement la taille du fichier, mais apres y a t il un process facile pour determiner la parité ?
J'avoue ne pas etre tres fort coté formules math dans un script. Je vois bien un mod qui me permettrait de m'en sortir, mais pour l'implementation ....

Et en question subsidiaire, quelle est la difference exacte qui fait que les deux commandes suivantes donnent des tailles differentes :
ls -s --blocksize=1
ls -la
Taille d'inode ? dans un cas j'ai la taille reelle et dans l'autre la taille occupé ?

Par avance, merci
Khan

> Lire le message (4 commentaires, moyenne: 3,3).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Pour les calculs, si ça peut t'aider :

Posté par Gyro Gearllose () le 22/05/2006 à 13:15. (lien). Évalué à 4.

J'ai testé ça, qui parle de lui même :
$ echo $((3 % 2))
1
$ echo $((16 % 2))
0

Le % donne le reste de la division entière de a par b dans l'expression a % b.
Ca te permet de tester la parité d'un nombre.
Pour le reste, je laisse la parole^Wle clavier aux experts !

--
All articles which are excluded shall be deemed included
Tous les articles exclus sont considérés inclus
--Brian de Palma in Phantom of the Paradize
  • [^]Re: Pour les calculs, si ça peut t'aider :

    Posté par khan () le 22/05/2006 à 13:39. (lien). Évalué à 2.

    Merci,
    exactement ce que je cherchais :)

    du coup mon script donne ca:

    SIZEFILE=`ls -la $FILE | awk '{print $5}'`
    REMAINDER=$(($SIZEFILE % 2 ))

    if [ $REMAINDER -eq 0 ] ; then
    echo "file size even"
    else
    echo "file size odd"
    fi

    Pour le moment je reste avec mon ls -la tant que je comprend pas la difference avec l'option -s.

    Khan

    • [^]Re: Pour les calculs, si ça peut t'aider :

      Posté par Gyro Gearllose () le 22/05/2006 à 13:57. (lien). Évalué à 4.

      Râââââhhhhhh.
      Bon, allez, parce que je suis content de t'avoir aidé, j'ai fouillé la page de man de ls pour toi....
      Si j'ai bien tout compris, comme dirait l'autre, c'est que l'option -s de la commande ls te donne la taille d'un fichier en blocs sur le disque. Donc, il faut connaître la taille d'un bloc pour avoir la taille occupée par le fichier sur le disque. Par contre, ls -l te donne la taille en octets.
      Voilà, en espérant avoir été assez clair, sinon, hésites pas !

      --
      All articles which are excluded shall be deemed included
      Tous les articles exclus sont considérés inclus
      --Brian de Palma in Phantom of the Paradize

Obtenir la taille d'un fichier ...

Posté par -=[ Benoit Plessis ]=- (page perso, ) le 22/05/2006 à 13:39. (lien). Évalué à 3.

Conseil: man stat

Exemple:

SIZE_BYTES=`stat -c %s /bin/ls`

--
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse" (traduction libr

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.autre