一、find命令的两点使用心得
1.对搜索到的结果执行其它命令
find命令的-exec选项可以对搜索到的文件执行各种命令。例如,将当前目录下最后修改时间在100天以上的文件删除:
find . -mtime +100 -exec rm {} ;
其中,{} 代表搜索到的每一个文件。; 为命令的结束符,需要在其前面加 ,或用单引号将其引起来。需要注意的是,这里-exec指定的命令是对搜索到的每一个文件分别执行,而不是以它们全部为操作对象。例如,想把当前目录下所有的.log文件打成一个tar包,就不能使用下面的命令:
find . -name *.log -exec tar -cvf log.tar {} ;
find . -name *.log -exec tar -cvf log.tar {} +
当然,也可以使用反引号来实现:
tar -cvf log.tar `find . -name *.log`
或者借助管道符和xargs命令:
find . -name *.log | xargs tar -cvf log.tar
上面三种形式中,find命令搜索到的结果被连接起来放到一行上。见下面的测试:
[root@redhat5-db-1 test]# touch 1.txt 2.txt 3.txt
[root@redhat5-db-1 test]# find . -name '*.txt'
./1.txt
./2.txt
./3.txt
[root@redhat5-db-1 test]# find . -name '*.txt' -exec echo {} +
./1.txt ./2.txt ./3.txt
[root@redhat5-db-1 test]# echo `find . -name '*.txt'`
./1.txt ./2.txt ./3.txt
[root@redhat5-db-1 test]# find . -name '*.txt' | xargs echo
./1.txt ./2.txt ./3.txt
2.搜索最后修改时间在某一天之前的所有文件
find命令的-mtime选项用于搜索修改时间在n*24小时之前的文件,由于是以小时而不是以天为单位,想用它来搜索最后修改时间在某一天之前(00:00之前)的文件则很难实现。而另外一个选项-newer的作用是搜索最后修改时间在指定文件的最后修改时间之后的文件,可以变相达到这个目的。例如,搜索最后修改时间在四月前的所有文件,方法如下:
(1) 使用 ls -lt 命令找到最后修改时间在4月1日前的最近的一个文件,假设该文件的名字为2010-03-31.log。
(2) 执行命令:find . ! -newer 2010-03-31.log
其中,! 表示对后面的表达式取反。
二、许可证到期引起的Windows远程登陆问题
使用远程桌面连接服务器时,提示如下错误:
客户端无法建立跟远程计算机的连接。
导致这个错误的可能的原因是:
1)远程计算机上的远程连接可能没有启用。
2)已超出远程计算机上的连接最大数。
3)建立连接时出现一个网络错误。
服务器的“事件查看器-系统”里有如下事件:
事件ID:1004 描述:终端服务器无法颁发客户端许可证
问题是许可证到期引起的,可通过如下方法解决:
客户端许可证过期:在客户端系统运行regedit,找到 HKEY_LOCAL_MACHINESOFTWAREMicrosoftmslicensing 项,导出备份后删除。
服务端许可证过期:在服务器端系统运行services.msc,将 Terminal Services Licensing 服务停掉,然后将 %systemroot%system32lserver 下所有文件备份后删除,再重新启动 Terminal Services Licensing 服务。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11662464/viewspace-1032789/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11662464/viewspace-1032789/