解压了一个45G的文件至你的/home下了 你打算怎么做删除他们?



  • 解压了一个45G的文件至你的/home下了 你打算怎么做删除他们?

    有一天晚上,你也许很懵逼的会把 一个很大的文件
    错,tar到你的/home下 我也是很绝望 不知道 当时 为什么没有指定文件夹
    结果 ls 列了 5分钟 …
    还好 从CSDN上得知 find命令可以查找某时间段内的所有文件
    当然 在配合一下函数 就可以 解决了
    mnp 我还是觉得 我很愚蠢…

    sudo find /home/hacker -type f -mmin +645 -exec rm {} \;
    这条命令意思就是rm掉你645分钟前文件.....
    

    相应的命令也拓展了解一下
    比如

    有大量文件夹 想批量删除他们怎么办?

    find . -maxdepth 1  -regex ".*ws.*"
    注:maxdepth值为1表示只在当前目录查找,不递归查找其子目录
    
    find . -maxdepth 1  -regex ".*ws.*" -exec rm -rf {} \; 
    注:批量删除它们,这个世界瞬间清爽了很多 后面的分号,不要省略啊
    
    find . -maxdepth 1  -regex ".*ws.*" | xargs rm -rf
    注:xargs是把前面的输出作为后面的参数,如果多行输出,就多次执行后面的命令
    
    find . -maxdepth 1 -name "*ws*" | xargs rm -rf
    注:有的linux系统支持的regex正则表达式不一样,可以使用上面的方式替换
    
    find . -regex ".*\.\(txt\|sh\)"
    注: 参数“-regextype type”可以指定“type”类型的正则语法,find支持的正则语法有:valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.
    

    find对文件或目录指定时间操作

    find /home/ -type f -mmin +N -exec ls -l {} \;
    注:显示N分钟前的文件
    
    find /home/ -type d -mtime +N -exec ls -l {} \;
    注:显示N天前的目录
    
    find /home/ -type d -mtime +N -exec rm {} \;
    注:删除N天前的目录
    

    提醒大家一句:回车之前一定要三思。。。。。。


Log in to reply