加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何使用shell脚本按名称对文件进行排序

发布时间:2020-05-23 19:08:25 所属栏目:Linux 来源:互联网
导读:我想用 Shell脚本按日期排序所有文件. 例如,在/ Users / KanZ / Desktop / Project / Test /中有文件M1.h,A2.h和F4.h. 每个文件都有不同的时间.如何按日期和时间将所有这些文件从最旧文件排序到当前文件? 目前我有一个重命名脚本: cd /Users/KanZ/Desktop/P

我想用 Shell脚本按日期排序所有文件.

例如,在/ Users / KanZ / Desktop / Project / Test /中有文件M1.h,A2.h和F4.h.

每个文件都有不同的时间.如何按日期和时间将所有这些文件从最旧文件排序到当前文件?

目前我有一个重命名脚本:

cd /Users/KanZ/Desktop/Project/Test/ 
n=1
for file in *.jpg;
do 
  echo $file prefix=M file_name=M$n.jpg 
  echo $file_name n=$(( $n+1 ))
  mv $file $file_name 
done

我第一次运行脚本JPG文件将是M1.jpg,M2.jpg和M3.jpg但如果我将一个名为A1.jpg的新文件添加到此目录并再次运行脚本,M1.jpg,M2.jpg和M3.jpg将被M4.jpg取代(在运行脚本之前,这个文件被命名为A1.jpg)因为第一个字母是A并且在M之前.

我想获得M1,M2,M3和M4.jpg.

解决方法

ls命令可以按上次修改时间轻松排序:
$ls -1t /Users/KanZ/Desktop/Project/Test

要反转排序,请包含-r选项:

$ls -1tr /Users/KanZ/Desktop/Project/Test

包括1告诉ls每行输出一个文件而没有额外的元数据(如长度,修改时间等),如果你需要将列表发送到其他命令进行进一步处理,这通常是shell脚本所需要的.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读