磁盘容量排序 磁盘的容量单位常用的有m,g,t这三个等级,它们之间的换算关系为1t =
时间: 2023-09-25 16:03:29 浏览: 332
1T = 1024G = 1048576M。
在磁盘容量排序中,通常按照容量从大到小的顺序进行排列。例如,一个4T的磁盘容量较大,可以存储更多的数据;而一个2G的磁盘容量较小,只能存储较少的数据。通过这种排序方式,我们可以更直观地了解磁盘的存储能力,以便根据需求选择合适的磁盘。
当然,在实际使用过程中,有时也会根据特定的需求进行排序。例如,在某些场景下,可能更关注磁盘的传输速度,而不仅仅是容量。因此,在选择磁盘时,容量是一个重要的指标,但并不是唯一的决定因素。
相关问题
用Java写一个如下描述的代码 磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,现在给定n块磁盘的容量,请对它们按从小到大的顺序进行稳定排序,例如给定5块盘的容量,1T,20M,3G,10G6T,3M12G9M排序后的结果为20M,3G,3M12G9M,1T,10G6T。注意单位可以重复出现,上述3M12G9M表示的容量即为3M+12G+9M,和12M12G相等。 输入描述:输入第一行包含一个整数n(2 <= n <= 100),表示磁盘的个数,接下的n行,每行一个字符串(长度大于2,小于30),表示磁盘的容量,由一个或多个格式为mv的子串组成,其中m表示容量大小,v表示容量单位,例如20M,1T,30G,10G6T,3M12G9M。磁盘容量m的范围为1到1024的正整数,容量单位v的范围只包含题目中提到的M,G,T三种,换算关系如题目描述。 输出描述:输出n行,表示n块磁盘容量排序后的结果。
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] disks = new String[n];
for (int i = 0; i < n; i++) {
disks[i] = sc.next();
}
Disk[] objs = new Disk[n];
// 将字符串转为Disk对象
for (int i = 0; i < n; i++) {
objs[i] = new Disk(disks[i]);
}
// 对Disk对象数组进行排序
Arrays.sort(objs);
// 输出排序后的结果
for (int i = 0; i < n; i++) {
System.out.println(objs[i].toString());
}
}
static class Disk implements Comparable<Disk> {
long size; // 磁盘大小
String unit; // 磁盘单位
public Disk(String str) {
String[] strs = str.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
long s = Long.parseLong(strs[0]);
String u = strs[1];
// 将磁盘容量单位统一转化为最小单位B
switch (u) {
case "M":
s *= 1024 * 1024;
break;
case "G":
s *= 1024 * 1024 * 1024;
break;
case "T":
s *= 1024 * 1024 * 1024 * 1024;
break;
}
size = s;
unit = "B";
}
@Override
public int compareTo(Disk o) {
if (size == o.size) {
return 0;
} else {
return size < o.size ? -1 : 1;
}
}
@Override
public String toString() {
// 将磁盘容量转化为所需的单位并输出
if (size % (1024 * 1024 * 1024 * 1024L) == 0) { // 大于1T,输出T
return size / (1024 * 1024 * 1024 * 1024L) + "T";
} else if (size % (1024 * 1024 * 1024L) == 0) { // 大于1G,输出G
return size / (1024 * 1024 * 1024L) + "G";
} else if (size % (1024 * 1024) == 0) { // 大于1M,输出M
return size / (1024 * 1024) + "M";
} else {
return size + "B"; // 不大于1M,输出B
}
}
}
}
```
生成一个 shell 脚本,用于显示 CPU、内存、磁盘容量信息,以 G 或者 M 为单位显示
### 回答1:
以下是一个显示 CPU、内存、磁盘容量信息的 shell 脚本的示例:
```
#!/bin/bash
# 获取 CPU 信息
cpu_info=`top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}'`
echo "CPU 占用率:$cpu_info%"
# 获取内存信息
mem_info=`free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }'`
echo "内存使用率:$mem_info"
# 获取磁盘容量信息
disk_info=`df -h | awk '$NF=="/"{printf "%dG\t\t", $3}'`
echo "磁盘剩余容量:$disk_info"
```
在执行此脚本前,请确保您已经在您的系统上安装了 `top` 和 `df` 命令。
### 回答2:
以下是一个用于显示 CPU、内存、磁盘容量信息的 shell 脚本,以 G 或 M 为单位显示:
```shell
#!/bin/bash
# 定义函数用于转换字节数为合适的单位
function format_capacity {
local capacity=$1
local unit=''
# 如果容量大于等于 1GB,则使用 GB 作为单位
if [[ $capacity -ge 1073741824 ]]; then
capacity=$(bc <<< "scale=2;$capacity/1073741824")
unit='GB'
# 如果容量大于等于 1MB,则使用 MB 作为单位
elif [[ $capacity -ge 1048576 ]]; then
capacity=$(bc <<< "scale=2;$capacity/1048576")
unit='MB'
fi
echo "$capacity$unit"
}
# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 获取内存使用量
memory_usage=$(free -m | awk 'NR==2{print $3}')
# 获取磁盘容量
disk_capacity=$(df -h | awk '$NF=="/"{print $2}')
# 转换并显示结果
cpu_usage=$(bc <<< "scale=2;$cpu_usage/1")
memory_usage=$(format_capacity $memory_usage)
disk_capacity=$(format_capacity $disk_capacity)
echo "CPU 使用率: $cpu_usage%"
echo "内存使用量: $memory_usage"
echo "磁盘容量: $disk_capacity"
```
该脚本首先定义了一个 `format_capacity` 函数,用于将字节数转换为合适的单位(GB 或 MB)。然后使用 `top` 命令获取 CPU 使用率,使用 `free` 命令获取内存使用量,使用 `df` 命令获取磁盘容量。最后,通过调用 `format_capacity` 函数将这些值转换为合适的单位,并输出到屏幕上。
### 回答3:
以下是用于显示CPU、内存和磁盘容量信息的Shell脚本:
```bash
#!/bin/bash
# 获取CPU信息
cpu_info=$(top -bn 1 | grep '%Cpu' | awk '{print $2}')
# 获取内存信息
mem_info=$(free -h | awk '/Mem/{print $3}')
# 获取磁盘容量信息
disk_info=$(df -h --output=avail / | tail -n1)
# 提取磁盘容量数值
disk_available=$(echo $disk_info | awk '{print $1}')
# 判断磁盘容量单位,并转换为G或M
if [[ $disk_info == *G ]]; then
disk_unit="G"
elif [[ $disk_info == *M ]]; then
disk_unit="M"
disk_available=$(echo "scale=2; $disk_available/1024" | bc)
fi
# 输出信息
echo "CPU使用率:$cpu_info%"
echo "内存使用量:$mem_info"
echo "可用磁盘容量:$disk_available$disk_unit"
```
这个脚本通过使用Linux命令行工具来获取CPU使用率(使用`top`),内存使用量(使用`free`)和磁盘容量(使用`df`),然后对磁盘容量进行单位转换。输出结果中的CPU使用率以百分比显示,内存使用量以可读格式显示(例如"3.5G"或"500M"),磁盘容量以G或M为单位显示。你可以保存这个脚本为一个.sh文件,并在终端中运行它来查看信息。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)