从Mac上的命令行删除当前文件夹中的.DS_STORE文件和所有子文件夹

问题描述 投票:25回答:5

我知道我可以在当前文件夹和所有子文件夹中使用find . -name ".DS_STORE"find all the .DS_STORE files。但是如何同时从命令行中删除它们呢?我发现来回切换到所有文件夹并逐个删除它真的很烦人。

谢谢你的建议。

linux macos command-line
5个回答
71
投票

find可以做到这一点。只需添加-delete

find . -name ".DS_Store" -delete

6
投票
find . -name ".DS_Store" -print -delete

0
投票

你也可以使用扩展的globbing(**):

rm -v **/.DS_Store

在zsh,bash 4和类似的shell中(如果没有启用,请激活:shopt -s globstar)。


0
投票

使用文本编辑器创建一个新文件,将以下文本复制并粘贴到其中,然后使用“.sh”文件扩展名保存,然后使用“终端”打开该文件。确保文本编辑器实际上是保存原始文本,而不是将文件保存为RTF格式文件或其他文本文件格式以及文件中的其他信息。

#!/bin/bash
echo -e "\nDrag a folder here and press the Enter or Return keys to delete all files whose names begin with a dot in its subfolders:\n"
read -p "" FOLDER
echo -e "\nThe following files will be deleted:\n"
find $FOLDER -name ".*"
echo -e "\nDelete these files? (y/n): "
read -p "" DECISION
while true
do
    case $DECISION in
        [yY]* ) find $FOLDER -name ".*" -delete
        echo -e "\nThe files were deleted.\n"
        break;;
        [nN]* ) echo -e "\nAborting without file deletion.\n"
        exit;;
        * ) echo -e "\nAborting without file deletion.\n"
        exit;;
    esac
done

0
投票

以下是如何以递归方式删除.DS_Store文件

打开终端在命令行中,转到所有文件和文件夹所在的文件夹的位置:cd to / your / directory

最后,输入以下命令: - find。 -name'.DS_Store'-type f -delete

按Enter键

干杯!!

© www.soinside.com 2019 - 2024. All rights reserved.