Linux找到命令问题

时间:2014-03-11 23:05:53

标签: linux

我没有一个可用的Linux系统来尝试这些命令,所以我在这里询问我计划做什么是正确的事情。 (通过我认为拨号更快的连接下载ISO时执行此操作)。

1,我试图在/ var / log目录和子目录中找到所有带.log扩展名的文件,将标准输出写入logdata.txt并将标准输出写入logerrors.txt

我相信命令会是:

$ find / 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。

这些是正确的吗?如果不是我做错了什么?

2 个答案:

答案 0 :(得分:1)

  

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分钟前完全被修改。

答案 1 :(得分:0)

在命令中使用通配符时,需要确保它们不会被shell解释。因此,最好在引号中包含带通配符的表达式。因此,第一个将是:

find /var/log/ -name "*.log" 1>logdata.txt 2>/home/username/logs/logerrors.txt

对于你应该拥有"*.conf"的第二个评论。