我没有一个可用的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。
这些是正确的吗?如果不是我做错了什么?
答案 0 :(得分:1)
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分钟前完全被修改。
答案 1 :(得分:0)
在命令中使用通配符时,需要确保它们不会被shell解释。因此,最好在引号中包含带通配符的表达式。因此,第一个将是:
find /var/log/ -name "*.log" 1>logdata.txt 2>/home/username/logs/logerrors.txt
对于你应该拥有"*.conf"
的第二个评论。