一行命令解决搜索和删除指定文件名文件

背景

在启动公司项目时,遇到了一个异常导致无法启动项目。项目启动时,会扫描根目录及其子目录的文件,但是 MacOS 系统自动生成的文件 .DS_Store 影不被启动器识别,导致解析异常,从而项目启动失败。因此,为了正常启动项目,需要检索项目下所有文件,并删除项目中所有的 .DS_Store 文件。

问题描述

一行命令搜索并删除当前目录及其子目录下指定文件名文件。

解决办法

find . -name '.DS_Store' -exec rm -f {} \;

执行该命令,将会删除当前目录及其子目录下,文件名为 .DS_Store 的文件。

备注: '.DS_Store' 文件名的引号可删除。

交互式提示删除

find . -name '.DS_Store' -exec rm -i {} \;

删除文件之前,将会给出提示。按 y 表示删除文件,按 n 表示不删除文件。


交互式删除

与之相同效果的命令:

find . -name '.DS_Store' -ok rm {} \;

find 命令用法详解

基础用法

find . -name testfile.txt

在当前目录及其子目录搜索文件名为 testfile.txt 的文件

-exec 命令

find . -name '.DS_Store' -exec rm -f {} \;

-exec 参数后面是 command 命令,它的终止以;为结束标志,且必不可少。考虑到各个系统分号会有不同意义,所以前面加反斜杠。

{} 花括号代表前面find查找出来的文件名。

需要注意的是,删除文件前最好确认一下文件名。避免删除不期望删除的文件。大家可以使用上述提到的交互式提示删除命名。

关于 .DS_Store

.DS_Store (英文全称 Desktop Services Store)[1] 是一种由苹果公司Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。[2]该文件由Finder创建并维护,类似于Microsoft Windows中的desktop.ini文件。

.DS_Store 文件为 Finder使用,用于储存图标地址信息和视图设置。

可以使用以下命令,禁用或启动自动生成:

  • 禁止生成
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
  • 恢复.DS_Store 生成
defaults delete com.apple.desktopservices DSDontWriteNetworkStores

相关资料

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)基本命令 命令格式: 命令 参数 1.ls 显示文件名,等同于dos下dir命令 命令格式:ls [opti...
    飞羽孟德阅读 1,961评论 0 3
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,462评论 0 5
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,779评论 0 11
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • 外面有淅淅沥沥的雨 天还未亮 一条龙的灯光 点着夜里的街道 汽车发动时的声音 在安静的夜里也变得悠长 车划过街道的...
    鲸7阅读 150评论 0 1