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

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

时间:2024-07-13 22:55:30浏览次数:17  
标签:脚本 10K shell TARGET 文件 当前目录 Linux 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后面跟着要执行的命令。

标签:脚本,10K,shell,TARGET,文件,当前目录,Linux,tmp
From: https://www.cnblogs.com/huangjiabobk/p/18300870

相关文章

  • 在Linux中,我们都知道FTP协议有两种工作模式,它们的大概的⼀个工作流程是怎样的?
    在Linux中,FTP(FileTransferProtocol,文件传输协议)协议支持两种工作模式:主动模式(ActiveMode)和被动模式(PassiveMode)。这两种模式在数据传输的发起和连接建立的方式上存在显著差异。以下分别详细说明这两种模式的工作流程:一、主动模式(ActiveMode)建立控制连接:客户端首先通过TC......
  • 在Linux中,如何改IP、主机名、DNS?
    在Linux系统中,更改IP地址、主机名和DNS设置通常涉及到几个关键的配置文件和命令。具体步骤会根据你的Linux发行版有所不同,但这里我将以常见的CentOS/RHEL系统为例,说明这些操作的一般流程。1.更改IP地址检查当前的网络接口:ipaddrshow找到你要修改的网络接口配置文件。......
  • 在Linux中,如何添加路由?
    在Linux中,添加路由是一个常见的网络配置任务,可以通过多种方法实现。以下是详细的步骤和说明:一、使用route命令添加路由(临时路由)route命令是Linux中用于显示和操作IP路由表的工具。使用route命令添加的路由是临时的,即在系统重启或网络接口重启后路由将失效。1.添加到主机的路由......
  • Linux hwspinlock子系统(STM32MP157 HSEM)
    hwspinlock(硬件自旋锁)是Linux内核中的一个同步机制,它提供了一种在多核处理器系统中保护共享资源的方法。hwspinlock分为三部分:hwspinlockcore提供注册注销以及对hwspinlock获取和释放接口。hwspinlockController驱动。hwspinlockClient驱动,使用hwspinlock提供的同步机制......
  • Linux常用文件操作命令
    本章将和大家分享Linux常用的文件操作命令。废话不多说,下面我们直接进入主题。一、目录切换(cd命令)在Linux系统中,cd是一个用于切换当前工作目录的命令,它是"changedirectory"的缩写。基本用法如下所示:1、不带参数示例:cd或cd~如果cd命令后没有跟任何参数,它会将当前用户的......
  • Android C++系列:Linux常用函数和工具
    1.时间函数1.1文件访问时间#include<sys/types.h>#include<utime.h>intutime(constchar*name,conststructutimebuf*t);返回:若成功则为0,若出错则为-1如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间;如果times是非空指针,则存取时......
  • Android C++系列:Linux进程间关系
    1.终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),在前面文章我们说过,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况......
  • Linux磁盘-格式化&挂载
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux磁盘涉及到的命令不是很多,但是在实际运维中的作用却很大,因为Linux系统及业务都会承载到硬盘上。如果磁盘使用和配置不合理,可能会引起系统无法启......
  • 推荐一个Elasticsearch ES可视化客户端工具:ES-King,支持win、mac、linux
    ES-King:开源免费,一个现代、实用的ESGUI客户端,支持多平台。下载地址:https://github.com/Bronya0/ES-King我之前开源的kafka客户端kafka-king(https://github.com/Bronya0/Kafka-King)已经有二百多star了,2k下载,后来又花了不少精力写了一个ES客户端,不过没怎么推广,于是写个文章介绍下......
  • 如何对Linux系统进行基准测试4工具Sysbench
    Sysbench简介Sysbench是一款多用途基准测试工具,可对CPU、内存、I/O甚至数据库性能进行测试。它是一个基本的命令行工具,提供了直接、简便的系统测试方法。github地址:https://github.com/akopytov/sysbench。主要功能:CPU:衡量CPU执行计算密集型任务的能力。内存:衡量内存子......