编写一个shell脚本,用for循环将当前目录下的.c文件移到指定目录,并按文件大小显示文件移动后的指定目录的内容
时间: 2024-10-09 11:08:26 浏览: 56
在Shell中编写一个脚本来实现这个功能,你可以创建一个名为`move_files.sh`的文件,内容如下:
```bash
#!/bin/bash
# 指定源目录 (当前目录)
src_dir=$(pwd)
# 指定目标目录
dest_dir="/path/to/your/directory" # 替换为你想要移动文件的实际目标目录
# 使用for循环遍历当前目录下的所有.c文件
for file in $src_dir/*.c
do
# 移动文件到指定目录
mv "$file" "$dest_dir"
# 显示移动后目标目录的内容,包括文件名和大小
echo "Moved: ${file} - Size: $(stat -c%s "$file") bytes"
done
# 显示目标目录移动后的总大小
total_size=$(du -cb "$dest_dir" | awk 'END{print $1}')
echo "\nTotal size of moved .c files: $total_size bytes\n"
# 相关问题:
1. 这个脚本如何处理不在当前目录下或不是.c文件的其他文件?
2. 如果你想只显示大于某个特定大小的.c文件,应该如何修改脚本?
3. 脚本中的`stat -c%s`命令用于获取文件大小,还有哪些选项可以提供额外的信息?
```
注意替换`"/path/to/your/directory"`为你实际的目标目录路径。运行这个脚本前确保你有执行权限。完成后,你可以通过运行`./move_files.sh`来执行它。
阅读全文