在Linux命令行环境中,如何编写一个脚本来递归查找目录下的所有文件并记录其大小,将结果写入指定的文本文件中?
时间: 2024-11-16 22:20:41 浏览: 13
在Linux命令行环境下,你可以通过bash或其他shell脚本语言编写一个简单的脚本来实现这个功能。这里是一个使用`find`命令配合`du`(磁盘使用)命令的示例:
```bash
#!/bin/bash
# 定义源目录、目标文件以及计数模式(字节、K、M等)
source_dir="/path/to/source/directory"
output_file="result.txt"
unit选择=K
# 使用find递归查找目录下所有文件
find "$source_dir" -type f | while read file; do
# 计算文件大小并转换单位
size=$(du -"$unit" "$file")
# 将文件名和大小追加到输出文件
echo "File: $file, Size: ${size}" >> "$output_file"
done
echo "Directory scanning complete. Results saved in $output_file."
```
在这个脚本中,你需要替换`source_dir`为你想要扫描的实际路径。保存这个脚本为`.sh`格式,例如`dir_scan.sh`,然后给它执行权限:
```bash
chmod +x dir_scan.sh
```
运行脚本:
```bash
./dir_scan.sh
```
脚本会创建一个名为`result.txt`的文件,并记录每个找到的文件及其大小。
阅读全文