我必须按大小查找文件。大小是参数。找到的文件的结果必须保存到文件中。我已经得到了这个:
touch result.txt
find /var/log -type f -size $1 -size $2 -exec ls {} \; > result.txt
脚本显示了一些结果,但我不确定它们是否正确,并且没有保存到文件中。
有人可以帮忙吗?
答案1
使用方式如下:
find /var/log -type f -size -10M -size +1M -exec ls {} \; > result.txt
它将存储大小大于 1Mb 且小于 10Mb 的文件名称。
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
如果作为输入参数传递,则使用如下方法:
find /var/log -type f -size -"$1"M -size +"$2"M -exec ls {} \; > result.txt
以下是可用的尺寸单位。
-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)
答案2
您找到的文件可以按数字排序(使用大小列),如下所示
find /var/log -ls |sort -nk7
如果你愿意,你可以将结果存储在文件中
find /var/log -ls |sort -nk7 > result.txt