zoukankan      html  css  js  c++  java
  • 关于linux批量修改文件名

    关于linux批量修改文件名

    问题:某mysql备份目录下,【修改时间】属性为当日的文件,改名=原名+日期戳;放入以日期命名的文件夹内

    第一印象就xargs命令 + ls 命令实现。

    1、日期  首先想到命令 date +%Y%m%d

      20120611

    2、修改时间为当日的文件,首先想到是通过ls命令 grep 当日的文件

           ll -–full-time

           -rw-r--r--  1 root root 0 2012-06-11 16:01:03.455732984 +0800 1.txt

           -rw-r--r--  1 root root 0 2012-06-11 16:06:54.385383568 +0800 2.txt

           过滤当日的文件出来【这里开始一直都不知道grep里面怎么执行date命令,后来在胖子的提醒下,知道反引号 可以执行这种状况下的命令

           ll -–full-time |grep `date +%Y-%m-%d`

          

    3、只需要获取文件名这一列 貌似cut命令,使用起来比较方便;

           ll –full-time |grep `date +%Y-%m-%d` | cut –d “ ” –f10

           1.txt

           2.txt

    4、使用xargs命令 。

      ll -–full-time |grep `date +%Y-%m-%d` | cut –d “ ” –f10 |xargs –n 10 –i{} mv {} {}.`date +%Y%m%d`

          -rw-r--r--  1 root root 0  6月 11 16:01 1.txt.20120611

          -rw-r--r--  1 root root 0  6月 11 16:06 2.txt.20120611

    【这里 也是 反单引号`  让我头痛了好久  终于弄明白反单引号 `` 是优先执行里面的内容

    5、后面发现,原来find命令  ,比我实现的简单多了;

           find . –maxdepth 1 –type f –mtime 0 –exec mv {} {}.`date +%Y%m%d` \;

    6、后面还发现可以使用awk文本操作也可以实现;感叹linux对于我等新手,……

  • 相关阅读:
    hdu 1595(最短路变形好题)
    hdu 5253(最小生成树)
    hdu 2363(枚举+最短路好题)
    hdu 3440(差分约束好题)
    poj 3169&hdu3592(差分约束)
    hdu 3339(最短路+01背包)
    hdu 2145(迪杰斯特拉)
    CodeForces 581D Three Logos
    CodeForces 510E Fox And Dinner
    CodeForces 484D Kindergarten
  • 原文地址:https://www.cnblogs.com/moriarty/p/2545244.html
Copyright © 2011-2022 走看看