bash:删除文件名中除最后一个版本以外的所有文件
问题描述:
我有10K以上的文件,如下所示。文件系统日期(导出时间)是所有文件的一个日期。bash:删除文件名中除最后一个版本以外的所有文件
YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-10-23-10-15.config
YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-11-22-11-10.config
YYY101R1.corp.company.org-RUNNINGCONFIG-2015-10-01-10-05-08.config
LLL101S1.corp.company.org-RUNNINGCONFIG-2015-08-10-23-10-15.config
LLL101S1.corp.company.org-RUNNINGCONFIG-2015-09-11-20-11-10.config
LLL101S1.corp.company.org-RUNNINGCONFIG-2015-10-02-19-05-07.config
如何删除除了从文件名的文件的最后一个版本(最后一天)的所有文件,并将其重命名为
YYY101R1.corp.company.org.config
LLL101S1.corp.company.org.config
谢谢。
答
的UNIX shell命令
ls -t YYY101R1.corp.company.org*
会,首先是最新列出的年龄顺序文件。抓住第一行为“最新”,并制作一个符号(“软”)链接:
ln -s $latest YYY101R1.corp.company.org.config
对每个文件组重复。
这会让你走吗?如果没有,请发布您的代码和具体问题的解释。看到https://stackoverflow.com/help/mcve
答
答
FLast=`ls -tr 'YYY101R1.corp.company.org*' | tail -n 1`
mv ${FLast} YYY101R1.corp.company.org.config
rm -f YYY101R1.corp.company.org-RUNNINGCONFIG-*
让我们开始使用代码来生成文件列表... –