![删除除以下之外的所有文件](https://linux22.com/image/688100/%E5%88%A0%E9%99%A4%E9%99%A4%E4%BB%A5%E4%B8%8B%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6.png)
我在当前测试环境中运行部署脚本,但在其他环境中,它太慢了。运行以下脚本以删除所有文件并仅保留必须保留的文件:
# 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>
find
NFS