Verwijder .DS_STORE-bestanden in de huidige map en alle submappen van de opdrachtregel op Mac

Ik begrijp dat ik find . -name ".DS_Store"naar vind alle .DS_Store-bestandenin de huidige map en alle submappen. Maar hoe kan ik ze tegelijkertijd van de opdrachtregel verwijderen? Ik vond het echt vervelend om heen en weer te schakelen naar alle mappen en deze een voor een te verwijderen.


Antwoord 1, autoriteit 100%

findkan dat. Voeg gewoon -deletetoe:

find . -name ".DS_Store" -delete

Antwoord 2, autoriteit 15%

find . -name ".DS_Store" -print -delete

Hiermee worden alle bestanden met de naam .DS_STOREin het huidige pad verwijderd, terwijl ook hun relatieve paden worden weergegeven


Antwoord 3, autoriteit 2%

U kunt ook uitgebreide globbing gebruiken (**):

rm -v **/.DS_Store

in zsh, bash 4 en soortgelijke shells (indien niet ingeschakeld, activeer door: shopt -s globstar).


Antwoord 4, autoriteit 2%

De beste manier om dit netjes te doen, is door het volgende te gebruiken:

find . -type f \( -name ".DS_Store" -o -name "._.DS_Store" \) -delete -print 2>&1 | grep -v "Permission denied"

Hiermee worden de bestanden verwijderd, verbergt “toestemming geweigerd”-fouten (terwijl andere fouten behouden blijven), en drukt een schone lijst met verwijderde bestanden af.


Antwoord 5

Hier leest u hoe u het bestand .DS_STORErecursief kunt verwijderen

Terminal openen
Ga in de opdrachtregel naar de locatie van de map waar alle bestanden en mappen zich bevinden:

cd to/your/directory

Typ vervolgens het onderstaande commando:

find . -name '.DS_Store' -type f -delete

Druk op Enter

Proost!!


Antwoord 6

Maak een nieuw bestand met een teksteditor, kopieer en plak de volgende tekst erin, sla het op met de bestandsextensie “.sh” en open het bestand met Terminal. Zorg ervoor dat de teksteditor de onbewerkte tekst daadwerkelijk opslaat en het bestand niet opslaat als een Rich Text Format-bestand of een ander tekstbestandsformaat met aanvullende informatie in het bestand.

#!/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

Antwoord 7

Dit was niet precies de vraag, maar als je de map echt wilt zippen zonder die .DS_STORE-bestanden, werkt dit een plezier…

zip -r -X archive_name.zip folder_to_compress

Other episodes