[英]Linux find command questions
我没有运行正常的Linux系统来尝试使用这些命令,因此我在这里询问我计划做的事情是否正确。 (在我通过拨号速度更快的连接下载ISO时执行此操作)。
1,我试图在/ var / log目录和子目录中找到所有带有.log扩展名的文件,将标准输出写入logdata.txt,将标准输出写入logerrors.txt
我相信命令将是:
$查找/ var / log / -name * .log 1> logdata.txt 2> /home/username/logs/logerrors.txt。
2,在/ etc目录中找到所有带有.conf的文件。 标准输出将是一个名为etcdata的文件,而标准错误将为etcerrors。
$ find / etc -name * .conf 1> etcdata 2> etcerrors
3,在/ var目录中查找最近30分钟内已修改的所有文件。 标准的做法是进入vardata,将错误放入varerrors。
会是:
$ find / var -mmin 30 1> vardata 2> varerrors。
这些正确吗? 如果不是,我在做什么错?
1,我试图在/ var / log目录和子目录中找到所有带有.log扩展名的文件,将标准输出写入logdata.txt,将标准输出写入logerrors.txt
干得好:
find /var/log/ -name '*.log' >logdata.txt 2>/home/username/logs/logerrors.txt
笔记:
find
之前将其展开。 1>file
, >file
就足够了 2,在/ etc目录中找到所有带有.conf的文件。 标准输出将是一个名为etcdata的文件,而标准错误将为etcerrors。
如前所述:
find /etc -name \*.conf >etcdata 2>etcerrors
为了举例,在这里我以另一种方式逃脱了*
。 这等效于'*.conf'
。
3,在/ var目录中查找最近30分钟内已修改的所有文件。 标准的做法是进入vardata,将错误放入varerrors。
find /var -mmin -30 >vardata 2>varerrors
我将-mmin 30
更改为-mmin -30
。 这样,它可以匹配30分钟内修改的文件。 否则,它匹配的文件恰好在30分钟前被修改。
在命令中使用通配符时,需要确保外壳程序不会解释通配符。 因此,最好在引号中包含通配符的表达式。 因此,第一个将是:
find /var/log/ -name "*.log" 1>logdata.txt 2>/home/username/logs/logerrors.txt
对于第二个相同的注释,应该在其中具有"*.conf"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.