删除除以下之外的所有文件

删除除以下之外的所有文件

我在当前测试环境中运行部署脚本,但在其他环境中,它太慢了。运行以下脚本以删除所有文件并仅保留必须保留的文件:

# match all files except
find . -type f \
    ! -wholename './app/etc/local.xml' \
    ! -wholename './app/etc/jobs.xml' \
    ! -wholename './app/etc/monolog.xml' \
    ! -wholename './shell/amqp/ESBQueueReaderMonoService.exe.config' \
    ! -wholename './index.php' \
    ! -wholename './var/*' -a \
    ! -wholename './media/*' -a \
    ! -wholename './maintenance.flag' \
    -delete

# match all directories that are now empty ...
find  . -type d \
    ! -wholename './var' -a \
    ! -wholename './media' -a \
    -empty \
    -delete

这里的问题也许还在于我的./media正在作为 NFS 共享运行,并且脚本当然也在扫描它。

我该如何改进它并使其部署得非常快。或者甚至通过使用locate?我知道有一些更好的部署方法可用,但这些方法只计划在 2017 年第二季度推出,所以我必须坚持通过 sh 本身运行它。

谢谢

答案1

尝试为命令提供一个-xdev参数 ,这将使搜索仅在当前文件系统内进行,因此它不会搜索您的共享find
find . -type f -xdev <other args>
findNFS

相关内容