Je comprends que je peux utiliser find . -name ".DS_STORE"
pour trouver tous les fichiers .DS_STORE dans le dossier actuel et tous les sous-dossiers. Mais comment puis-je les supprimer de la ligne de commande simultanément? J'ai trouvé très ennuyeux de basculer dans tous les dossiers et de le supprimer un par un.
Merci pour tout conseil.
find
peut le faire. Ajoutez simplement -delete
:
find . -name ".DS_Store" -delete
find . -name ".DS_Store" -print -delete
Vous pouvez également utiliser le globbing étendu (**
):
rm -v **/.DS_Store
dans zsh, bash 4 et des shells similaires (si non activé, activer avec: shopt -s globstar
).
Créez un nouveau fichier avec un éditeur de texte, copiez et collez le texte suivant, enregistrez-le avec l’extension de fichier ".sh", puis ouvrez le fichier avec Terminal. Assurez-vous que l'éditeur de texte enregistre effectivement le texte brut et non le fichier en tant que fichier au format RTF ou dans un autre format de fichier texte contenant des informations supplémentaires.
#!/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
Voici comment supprimer récursivement le fichier .DS_Store
Ouvrez TerminalEn ligne de commande, accédez à l'emplacement du dossier où se trouvent tous les fichiers et tous les dossiers: cd dans/votre/répertoire
Enfin, tapez la commande ci-dessous: - trouver . -name '.DS_Store' -type f -delete
Appuyez sur Entrée
À votre santé!!