作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?

编写一个shell脚本来将当前目录下大于10K的文件转移到/tmp目录下,你可以遵循以下步骤:

  1. 打开你的Linux终端。

  2. 使用文本编辑器创建一个新的shell脚本文件,例如使用nanovim

    nano move_large_files.sh
    
  3. 在打开的编辑器中,编写以下脚本内容:

    #!/bin/bash
    
    # 定义目标目录
    TARGET_DIR="/tmp"
    
    # 检查目标目录是否存在,如果不存在则创建
    if [ ! -d "$TARGET_DIR" ]; then
        mkdir -p "$TARGET_DIR"
    fi
    
    # 遍历当前目录下的所有文件
    for file in *; do
        # 使用stat命令获取文件大小,单位为字节
        size=$(stat -c%s "$file")
    
        # 检查文件大小是否大于10K(10*1024字节)
        if [ "$size" -gt 10240 ]; then
            # 如果是,则移动到目标目录
            mv "$file" "$TARGET_DIR/"
            echo "Moved $file to $TARGET_DIR"
        fi
    done
    
  4. 保存并关闭编辑器。如果你使用的是nano,可以按Ctrl+X,然后按Y确认保存,最后按Enter键退出。

  5. 给脚本文件添加执行权限:

    chmod +x move_large_files.sh
    
  6. 运行脚本:

    ./move_large_files.sh
    

这个脚本会遍历当前目录下的所有文件,并使用stat命令检查每个文件的大小。如果文件大小大于10K(10240字节),脚本会使用mv命令将文件移动到/tmp目录下。脚本还会在控制台输出移动的文件信息。

请注意,这个脚本只会处理当前目录下的文件,不会递归地处理子目录中的文件。如果你需要处理子目录中的文件,你可以使用find命令代替脚本中的循环,这样可以更灵活地处理各种情况。例如:

find . -type f -size +10k -exec mv {} /tmp/ \;

综上所述,这条find命令会查找当前目录及其子目录下所有大于10K的文件,并将它们移动到/tmp目录下。-type f指定只查找文件,-size +10k定义了大小条件,-exec后面跟着要执行的命令。

posted @ 2024-07-13 22:41  黄嘉波  阅读(19)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波