web-dev-qa-db-fra.com

Recherche de fichiers par taille

Je dois trouver des fichiers par taille. Les tailles sont des paramètres. Le résultat des fichiers trouvés doit être sauvegardé dans un fichier. J'ai déjà ceci:

touch result.txt 
find /var/log -type f -size $1 -size $2 -exec ls {} \; > result.txt 

le script me montre des résultats, mais je ne suis pas sûr qu’ils ont raison et que rien n’est en train de sauvegarder.
Quelqu'un peut-il aider?

6
J.Smith

utiliser comme:

find /var/log -type f -size -10M -size +1M -exec ls {} \; > result.txt

Il stockera les noms de fichiers dont la taille est supérieure à 1 Mo et inférieure à 10 Mo.

cat result.txt
/var/log/wtmp
/var/log/audit/audit.log.1
/var/log/audit/audit.log
/var/log/anaconda/journal.log
/var/log/mongo/mongod-11.0.0.11.log

Si vous passez comme paramètres d'entrée, utilisez comme ceci:

find /var/log -type f -size -"$1"M -size +"$2"M -exec ls {} \; > result.txt

Vous trouverez ci-dessous les unités disponibles pour la taille.

  -size n[cwbkMG]
          File uses n units of space, rounding up.  The following
          suffixes can be used:

          `b'    for 512-byte blocks (this is the default if no suffix
                 is used)

          `c'    for bytes

          `w'    for two-byte words

          `k'    for Kibibytes (KiB, units of 1024 bytes)

          `M'    for Mebibytes (MiB, units of 1024 * 1024 = 1048576
                 bytes)

          `G'    for Gibibytes (GiB, units of 1024 * 1024 * 1024 =
                 1073741824 bytes)
10
pl_rock

Les fichiers que vous trouvez peuvent être triés numériquement (en utilisant la colonne taille) comme ceci

find /var/log -ls |sort -nk7

Vous pouvez stocker le résultat dans un fichier si vous le souhaitez.

find /var/log -ls |sort -nk7 > result.txt
2
sudodus