Articles of find

find命令没有这样的文件或目录错误

我正在使用此命令删除超过150天的文件和文件夹 find /media/Server/VPS/dailySQL/* -mtime +140 -exec rm -rf {} \; 问题是,我得到如下错误 find: `/media/May-08-Sat-2010': No such file or directory find: `/media/May-11-Tue-2010': No such file or directory find: `/media/May-12-Wed-2010': No such file or directory find: `/media/May-13-Thu-2010': No such file or directory find: `/media/May-14-Fri-2010': No such file or directory 这是为什么

压缩所有没有任何符号链接指向他们的Apache日志文件

我使用cronolog让apache日志文件旋转。 我正在使用fail2ban监视这些日志文件,并禁止滥用。 总是有一个由cronolog创build并指向当前日志文件的access.log符号链接。 每天晚上,我运行一个cron来压缩昨天的日志文件: find /var/log/apache2/ -daystart -mtime +0 \( -name "*access*.log" -or -name "*error*.log" \) -type f -exec gzip {} \; 问题是,对于stream量低的网站, access.log符号链接现在已经死了,因为它指向的文件已经被gzip重命名了。 结果是fail2ban放弃了那些监狱,因为它不能再统计文件了。 解决方法是只压缩没有符号链接指向的日志文件。 我发现自己是这样做的一种方式,它的工作,但我想知道是否有一个更简单的方法来做,因为这是一个非常复杂,并不是很快( find一个find )。 find /var/log/apache2/ -daystart -mtime +0 \( -name "*access*.log" -or -name "*error*.log" \) -type f -exec sh -c 'test `find /var/log/apache2/ -lname {} | wc -l` -eq […]

如何列出目录中没有被符号链接的目录?

我试图做一些类似于这个问题的清理。 在UNIX操作系统中,我想要删除给定目录中未被符号链接的目录。 例如我有一个部署脚本,为这样的应用程序创build一个目录结构: 1.0-201103071711/ 1.0-201103071718/ 1.0-201103071729/ current -> /opt/myapps/fooapp/1.0-201103071729/ 我想创build一个脚本来删除那个不是“当前”目录的目录。 谢谢!

如何使用sed,perl在给定的目录中用特定的模式重命名文件及其内容?

给定一个名为Centos1.x,Centos1.y,Centos1.z的文件夹“Centos1”,这些文件的内容也是“Centos1”。 使用单个命令(使用find,sed,perl -pie)如何将它们重命名为“Centos2”以便发生所有“Centos1”以下是Centos1目录的内容。 Centos1.nvram Centos1-s005.vmdk Centos1.vmsd vmware-2.log Centos1-s001.vmdk Centos1-s006.vmdk Centos1.vmx vmware.log Centos1-s002.vmdk Centos1-s007.vmdk Centos1.vmxf Centos1-s003.vmdk Centos1-s008.vmdk vmware-0.log Centos1-s004.vmdk Centos1.vmdk vmware-1.log 注意:如果存在所有文件,我想要将“Centos1”replace为“Centos2”。 在更改为“Centos1”目录后,我运行了下面提到的命令 find . -type f -exec sed -i 's/Centos1/Centos2/g' {} + 但是没有帮助。 任何input?

RSYNC慢/只复制更改的文件?

我有一个服务器,维护成千上万的日志文件嵌套在成千上万的目录。 目前,我正在使用RSYNC将这些日志文件复制到一个Web服务器,在这里我parsing它们并通过Web应用程序使它们可用。 我的问题是,鉴于大量的文件和目录,RSYNC需要很长的时间。 我需要每小时几次获得最新的文件,而且效率不高。 我的问题基本上是有更好的办法吗? 也许某种方式告诉源服务器发送任何已更改的日志文件,而不是使用RSYNC扫描整个文件夹结构? 我唯一的优先事项就是尽可能快地将已更改的日志文件转移到Web服务器,每小时几次。 但RSYNC被certificate没有那么有用的时间。 谢谢!

find命令中的链接选项

请解释一下find命令中的-links选项的用法。 手册页没有提供太多的信息。 我们使用的一些脚本有一个选项 – 在find命令中链接0。 我正在使用以下命令来执行此操作。 find /data -type f -links 0 -ls

如何安全地更改所有者:组recursion?

我正在复制一个用户主目录作为用户#2的主目录,因此需要将内容分发给新用户。 运行: find /home/user2 -user user1 -exec chown user2 '{}' \; find /home/user2 -group user1 -exec chgrp user2 '{}' \; 工作好,但(由于./ ..文件,我想),不知何故根/被chown'ed user2。 但是, /home依然由root:root拥有。 我怎样才能确定发现会做什么? 我怎样才能限制它向上移动树(朝向根),甚至在它修改工作目录本身之前停止它?

Bash脚本创build大量的目录系列

我需要创build一个Bash脚本来进入每个用户的home文件夹,找出一个wp-content文件夹,在它下面创build一个目录上传 ,然后chmod 0756上传 。 我如何做到这一点? 我想我需要使用正则expression式/正则expression式使用查找 ,然后告诉它运行结果上的另一个bash脚本。

如何使用find来replace多个相同名称的文件

我有几个相同名称的文件(比如somefile.php)分散在/ var / 如果我想用位于/ home / me / somefile.php中的新版本的somefile.phpreplace它们,我将如何做? 我发现每个search结果都与replace文件中的文本有关,但我想replace整个文件 。 我知道我可以find所有的文件: find /var/ -type f -name somefile.php 但我不知道如何将/home/me/somefile.php移动到结果中,并将其全部replace。

如何在redhat中findmysql二进制文件

我正在使用Redhat发行版。 networkingpipe理员无法访问,所以我无法请求信息。 使用bash,我如何findmysql二进制文件,以便我可以运行sql命令? mysql -u user -p password -bash: mysql: command not found 所以他们没有设置path。