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?
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)
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