日期:2014-05-16  浏览次数:20679 次

如何通过判断比较文件名来选择指定文件夹下的文件并将其copy到指定目录下?
【问题描述】
某一目录下有很多名称很接近的文件夹,如:
zhanghui@Amy:/mnt/tvos/prebuild/blossoms/bl8670a/1031-E1$ ls
2011-0921  2011-1013  2011-1107  2011-1117  2011-1215  2012-0207  2012-0228  2012-0322
2011-0926  2011-1014  2011-1108  2011-1121  2011-1219  2012-0208  2012-0301  mass_version
2011-0927  2011-1017  2011-1109  2011-1123  2011-1226  2012-0213  2012-0305  pu
2011-0928  2011-1024  2011-1110  2011-1124  2011-1231  2012-0216  2012-0307
2011-0929  2011-1031  2011-1111  2011-1125  2012-0104  2012-0220  2012-0308
2011-0930  2011-1102  2011-1114  2011-1128  2012-0109  2012-0222  2012-0316
2011-1008  2011-1103  2011-1115  2011-1206  2012-0116  2012-0223  2012-0319
2011-1011  2011-1104  2011-1116  2011-1212  2012-0203  2012-0227  2012-0321
这些文件夹下也有名称比较接近的文件,如:
zhanghui@Amy:/mnt/tvos/prebuild/blossoms/bl8670a/1031-E1$ ls -l 2012-0227/
total 211244
-rw-r--r-- 1 1007 1008    10477 2012-02-27 17:43 bl8670a-201202271502-commit-log
-rw-r--r-- 1 1007 1008      535 2012-02-27 17:43 bl8670a-201202271625-commit-log
-rw-r--r-- 1 1007 1008        0 2012-02-27 17:43 bl8670a-201202271736-commit-log
-rw-r--r-- 1 1007 1008 73861228 2012-02-27 17:43 bl8670a-ota-eng.john.wang-201202271736.zip
-rw-r--r-- 1 1007 1008 24787244 2012-02-27 17:43 system-201202271502.tar.bz2
-rw-r--r-- 1 1007 1008 24787197 2012-02-27 17:43 system-201202271625.tar.bz2
-rw-r--r-- 1 1007 1008 64847915 2012-02-27 17:43 system-201202271736.tar.bz2
-rwxr-xr-x 1 1007 1008  9265088 2012-02-27 17:43 upgrader.bin-bl8670a-1031-E1-201202271502.zip
-rwxr-xr-x 1 1007 1008  9265088 2012-02-27 17:43 upgrader.bin-bl8670a-1031-E1-201202271625.zip
-rwxr-xr-x 1 1007 1008  9263040 2012-02-27 17:43 upgrader.bin-bl8670a-1031-E1-201202271736.zip
现在我要实现的是用shell脚本来选择日期最近的那个文件夹下面最后生成的.tar.bz2和.zip文件(从文件夹或者文件名称中的日期可以判断出哪个文件是最后生成的),并将其copy至指定目录如/media/sdcard/下面。

谢谢大侠赐教!
------最佳解决方案--------------------
ls -tr $(ls -tr 
------其他解决方案--------------------
 tail -1)/*.tar.bz2
看看这个是不是最新的
------其他解决方案--------------------
引用:
ls -tr $(ls -tr 
------其他解决方案--------------------
 tail -1)/*.tar.bz2
看看这个是不是最新的


如果在某个文件夹下只有一个.tar.bz2的话,这个方法时可以的,但是如果有多个的话好像不行,如2012-0227下面有多个.tar.bz2和.zip的文件,如果我要找出 system-201202271736.tar.bz2这个文件用这个方法就不行。