繁体   English   中英

Linux查找命令问题

[英]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

笔记:

  • 您需要引用'* .log',否则shell将在传递给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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM