Quelqu'un a-t-il une solution pour supprimer ces fichiers ._ et .DS_Store embêtants que l'on obtient après avoir déplacé des fichiers d'un Mac vers un serveur Linux?
spécifier un répertoire de démarrage et le laisser aller? comme / var / www / html / down ...
Réponses:
allez dans le répertoire et utilisez:
Non testé, essayez-les d'abord sans les xargs!
Vous pouvez remplacer le point après la recherche par le répertoire au lieu de passer d'abord au répertoire.
la source
-delete
action, ce qui pourrait raccourcir cela. @JT: Cela recherche récursivement sous.
. Cela dépend du nombre de fichiers et de sous-répertoires qu'il y a ... ne pouvez-vous pas simplement interdire leur téléchargement?-r
indicateur (récursif) n'est pas recommandée dans ce cas car vous ne voulez supprimer aucun répertoire.command rm
une meilleure solution (c'est-à-dire plus directe)? (Par "direct", je veux dire qu'il traite spécifiquement du problème en question et rien d'autre, et est donc moins susceptible d'avoir des effets secondaires indésirables, et va également être plus explicite pour quiconque doit maintenir le code plus tard.)la source
Les nouveaux supports de findutils
-delete
, donc:Ajouter
-print
pour également obtenir une liste des suppressions.La commande fonctionnera pour vous si vous avez un système POSIX à jour, je crois. Au moins, cela fonctionne pour moi sur OS X 10.8 et pour d'autres qui l'ont testé sur macOS 10.12 (Mojave).
Merci à @ephemient dans un commentaire sur le message de @ X-Istence (a pensé que c'était assez utile pour justifier sa propre réponse).
la source
find
récursive dans le répertoire de travail actuel par défaut..
de macOS 10.12 (Sierra).Commande simple:
Bonne chance!
la source
rm -i
trouvaille ./ -name '* py'` -rf, which did NOT prompt me to delete files. you will need to take it on the end (i.e.
-rfi`). Merci mon Dieu pour mon script de sauvegarde.-bash: /bin/rm: Argument list too long
la source
Vous pouvez passer à zsh au lieu de bash. Cela vous permet d'utiliser ** pour faire correspondre des fichiers n'importe où dans une arborescence de répertoires:
Vous pouvez également les combiner comme ceci:
Zsh a beaucoup d'autres fonctionnalités qui manquent à bash, mais celle-là seule vaut la peine d'être remplacée. Il est disponible dans la plupart (probablement toutes) les distributions Linux, ainsi que dans cygwin et OS X.
Vous pouvez trouver plus d'informations sur le site zsh .
la source
**
également en charge :-) (mais pas par défaut,shopt -s globstar
doit être défini)la source
find
qui le prend en charge, il+
ressemble à xargs:find . -name "FILE-TO-FIND" -exec rm -rf {} +
- (il vous manque également un espace avant-exec
)Exemple pour supprimer "Thumbs.db" de manière récursive;
Validez par:
Cela ne devrait maintenant afficher aucune des entrées avec "Thumbs.db", à l'intérieur du chemin actuel.
la source
xargs
et à laprint0
place deexec
(il y a des raisons).Il est préférable de voir ce qui est supprimé en ajoutant -print à cette réponse
la source
si vous avez Bash 4.0 ++
la source
Quelques points à noter:
«-delete» n'est pas récursif. Donc, si .TemporaryItems (dossier) contient des fichiers, la commande échoue.
Il y a beaucoup de ces fichiers embêtants créés par les macs: .DS_Store ._. DS_Store .TemporaryItems .apdisk
Cette seule commande s'adresse à tous. Enregistre de courir find encore et encore pour plusieurs matchs.
la source
Cela fonctionne également:
sudo rm -rf 2018-03-*
ici vos fichiers de suppression avec des noms au format 2018-03- (autre chose)
rester simple
la source
sudo
ni vous ne fournissez aucune information sur sonrm
fonctionnement dans le contexte de votre réponse.