Lots & supprimer des fichiers sur linux à l'aide de la commande rechercher du problème
Salut tout le monde
Je suis en train de supprimer tous les pouces.db fichiers dans une partition Windows à l'aide trouver commande dans ubuntu:
find . -iname "*.db"|while read junk;do rm -rfv $junk;done
Mais il ne fonctionne pas pour moi et rien ne se passe!
J'ai fait ce truc pour supprimer mes fichiers inutiles avant sur la version précédente de Ubuntu mais maintenant sur la dernière version d'Ubuntu, je ne peux pas.
Est-il un bug dans ma commande?
ne
Cette question appartient vraiment sur superuser.com
oui, il renvoie le chemin d'fondée Pouces.fichiers db. Mais je pense que j'ai trouvé le problème, les espaces dans les noms de répertoire!
find . -iname "*.db"
retourne rien?Cette question appartient vraiment sur superuser.com
oui, il renvoie le chemin d'fondée Pouces.fichiers db. Mais je pense que j'ai trouvé le problème, les espaces dans les noms de répertoire!
OriginalL'auteur Ahmad Azimi | 2011-06-05
Vous devez vous connecter pour publier un commentaire.
J'aimerais faire de cette façon:
De cette façon, il fonctionne toujours, même si votre répertoires contiennent des espaces dans leur nom.
OriginalL'auteur Chris Jester-Young
juste pour jeter ce
Les deux réponses sont correctes, et intéressant
OriginalL'auteur Michael
Je ne suis pas sûr de savoir pourquoi vous utilisez
while
....devrait suffire (et seulement supprimer les fichiers que vous voulez, pas tout BDB les fichiers qui peuvent être autour de la pose).
OriginalL'auteur Johnsyweb
Le code semble bon et fonctionne sur l'arche et de debian. Peut-être il n'y a pas les fichiers correspondant à "*.db"?
Au passage: j'ai peut-être pas une bonne idée de supprimer tous les fichiers avec le suffixe ".db", parce que vous pouvez accidentellement supprimer d'autres fichiers que "les Pouces.db"
OriginalL'auteur Pascal Wittmann
Vérifiez d'abord si la première partie de votre commande, c'est:
est de retourner quoi que ce soit.
Si c'est le cas alors vous pouvez utiliser
xargs
comme suit pour accomplir votre tâche:Mise à JOUR: D'après les commentaires, c'est dangereux, surtout si il y a des espaces dans le répertoire/les noms de fichiers. Vous aurez besoin d'utiliser
-print0
/xargs -0
pour le rendre sûr.-print0
/xargs -0
combinaison pour le rendre sûr (ou utilisez le-exec
méthode)Pour le mien et les autres formes d'apprentissage souci pouvez vous s'il vous plaît écrire ici ce qui est dangereux? Merci.
Essayez ceci dans un répertoire vide:
mkdir -p "a/b c" ; touch b ; touch c ; find . -iname 'b*' | xargs -n 1 echo
. Vous verrezc
imprimé dans sa propre ligne. Si vous remplacezecho
avec unrm
variante, il va supprimer le fichier appeléc
lorsque vous avez demandé-iname 'b*'
.Merci beaucoup pour cette remarque, je pense que c'est un avis important à propos de cette commande pour empêcher la suppression de mauvais fichiers.
OriginalL'auteur Ozair Kafray