如何通过判断比较文件名来选择指定文件夹下的文件并将其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
看看这个是不是最新的
------其他解决方案--------------------
如果在某个文件夹下只有一个.tar.bz2的话,这个方法时可以的,但是如果有多个的话好像不行,如2012-0227下面有多个.tar.bz2和.zip的文件,如果我要找出 system-201202271736.tar.bz2这个文件用这个方法就不行。