Java Runtime.getRuntime.exec() 与linux shell find
来源:互联网 发布:软件发明专利怎么写 编辑:程序博客网 时间:2024/06/05 20:51
前几天有个需求是在Java工程里面执行linux shell指令,删除过期的文件。
需要执行linux的find指令,指令是要删除某个目录下面创建时间超过两个小时的文件。
指令如下:
find filepath -type f -cmin +120 -exec rm -f {} \;
-type 指定文件类型
-cmin指定文件创建时间,在120分钟之前的将会被过滤,相关参数还有-mmin -ctime -mtime用法大同小异,分别是文件修改时间,从名字也可以看出是time与min单位不同
-exec是指对过滤所得采取的动作。
本以为把"find filepath -type f -cmin +120 -exec rm -f {} \\;"作为参数直接传给Runtime的exec()即可,结果发现报错,报-exec 没有相关参数,后来经过一晚上的折腾,原来Java执行linux shell指令跟shell下面直接执行是有区别的,shell下面{}后面“\”的意思是对“;”进行转义,防止shell把";"作为指令的一部分执行,实际上";"只是一个指令分隔符,表示一条指令的结束。
明白了问题就好了,只需要把java里面的参数改为"find filepath -type f -cmin +120 -exec rm -f {} ;"即可,当然exec()函数也接受字符串作为参数,也可以把指令划分。
0 0
- Java Runtime.getRuntime.exec() 与linux shell find
- java Runtime.getRuntime().exec
- java Runtime.getRuntime().exec()
- Java Runtime.getRuntime().exec()详解
- Java执行Runtime.getRuntime().exec()
- 通过Runtime.getRuntime().exec使用Linux脚本
- 整理java Runtime.getRuntime().exec | 命令
- Runtime.getRuntime(). exec( )
- Runtime.getRuntime().exec
- Runtime.getRuntime().exec()
- Runtime.getRuntime().exec()
- Runtime.getRuntime.exec 注意事项
- Runtime.getRuntime().exec()
- Runtime.getRuntime().exec
- Runtime.getRuntime().exec问题
- Runtime.getRuntime().exec(...)使用方法
- 通信-Runtime.getRuntime().exec
- Runtime.getRuntime().exec(strMakePathPath);
- PDF在线解决方案(1)
- windows与linux 汇编差异
- 《windows 程序调试》读书笔记之编译器篇
- VS2010编译调试STL源代码
- Kalevich Strikes Back(扫描线求分块的面积)
- Java Runtime.getRuntime.exec() 与linux shell find
- 学习Spark第一天---1张图了解Spark
- 在tomcat下部署工程
- hdu 1716 排列2
- ZOJ2770 Burn the Linked Camp(差分约束)
- Flex基础知识入门--创建GISSever发布地地图显示
- HDU 4414 Finding crosses(暴力判断)
- C++ Primer 【第四版】第四章 数组和指针
- c#常见stream操作