Quelle est l'équipe linux Pour la racine de supprimer le dossier du répertoire domestique de tout utilisateur

Salut, j'utilise Fedora 10. j'utilise root. j'ai 3 Catalogue de l'utilisateur et de la maison 2 Utilisateurs de 3 Il y a un dossier nommé «data». Je veux supprimer ces dossiers.

Quelle commande supprimer un dossier des répertoires de domicile de tous les utilisateurs.

Merci à Sunil Kumar Sahu
Invité:

Dominique

Confirmation de:

Pour être complètement pédant, vous devez probablement utiliser

getent

au lieu de regarder / etc / passwd, Juste au cas où vous auriez des utilisateurs d'autres sources, telles que NIS, SQL, LDAP Etc. Pour obtenir une liste de répertoires à domicile, vous pouvez l'utiliser:

getent passwd | cut -d: -f6

Et pour supprimer tous les catalogues de données pour tous les utilisateurs:

for home in $(getent passwd | cut -d: -f6) ; do
if [ -d "$home/data" ]; then
rm -rf "$home/data"
fi
done

Supplémentaire

si un

Application pour vous assurer que vous n'avez accidentellement pas de fichiers supprimés.

Christine

Confirmation de:

en supposant que les catalogues à domicile sont dans / home, Tu dois faire ca:

for user in 'user1' 'user2'
do
rm -rf /home/$user/data
done

Giselle

Confirmation de:

Tout d'abord, vérifiez ce qui sera supprimé (Comme David l'a suggéré, je devais mentionner que je ne lancerais jamais la prochaine équipe aveuglément):

ls -al /home/*/data 

Et si tout est en ordre, supprimez:

rm -rf /home/*/data

Hannah

Confirmation de:

Pour supprimer simplement un dossier dans plusieurs comptes d'utilisateurs en une seule étape, vous pouvez utiliser

# rm -rf /path/to/home/(user1|user2|user3|...)/data

Veuillez noter que seul le dossier est supprimé, pas l'utilisateur. Pour chaque utilisateur, vous aurez besoin d'une équipe rapide. Awk, par exemple

$ grep "/home" /etc/passwd | awk -F":" '{ print $1 }'

Obtenir la liste. Problème avec l'équipe awk C'est que cela ne connaît pas la différence entre l'utilisateur du système, qui n'a aucun répertoire personnel et l'utilisateur qui a.

Hannah

Confirmation de:

# cd /home/
# find . -maxdepth 2 -type d -iname data -exec rm -rf {} \;

DANS

trouver

La commande est utile dans ce contexte, car elle est automatiquement récursive, elle ne supprimera pas accidentellement le fichier avec le même nom et ne sera pas mieux que la plupart des solutions de ce type de problème. (À l'exception du vieux problème "Trop d'arguments", avec lequel nous avons rencontré des administrateurs système expérimentés - cm.

xargs

pour ça).

Résumé de la valeur

ce

spécifique

trouver

équipe:

maxdepth: N'allez pas plus loin sur un répertoire ci-dessous celui spécifié dans l'invite de commande. (.);

Type: Trouver des catalogues

iname: Nom célibataire avec une chaîne "data" cas insensible

exec: Commande d'exécution pour objets appropriés trouvés - dans ce cas rm -rf

{}: Filleur pour chaque objet approprié trouvé

\ ;: Le point avec la virgule utilisée pour compléter chaque commande est blindée pour arrêter l'extension de la coque.

J'espère que cela aidera!

Pour répondre aux questions, connectez-vous ou registre