Je cherche une commande UNIX pour supprimer tous les fichiers d'un répertoire sans supprimer le répertoire lui-même. (Remarque Le répertoire ne contient pas de sous-répertoires). P>
8 Réponses :
rm -i <directory>/* this should do the trickEDIT: added -i just in case (safety first). directory should be a full or relative path (e.g. /tmp/foo or ../trash/stuffs)
Y a-t-il un moyen de supprimer sans fournir de chemin? I.E Du répertoire sur votre CD-D?
Bien sûr, vous pouvez toujours CD sur votre annuaire, puis effectuer une "RM -I *" Veuillez noter que le drapeau -i forcera la confirmation de chaque suppression, est là simplement pour la sécurité (les choses méchantes se produiront si vous égalisez égarer A / IN votre commande de commande et vous fournissez un drapeau de -r ...)
J'utilise RM -R * mais il demande une confirmation sur chaque suppression de fichier. Pour arrêter ceci, c'est rm -rf * oui? Essayer de supprimer tout de l'annuaire actuel.
-R Effectuer une suppression récursive, -f force la suppression, en supposant que la commande RM n'a pas été aliasée, j'irais avec une rm -f *
La commande RM est actuellement aliasée comme «RM -i». Cela affectera-t-il que la suppression forcée?
RM -I CODE> Cela ressemble à une suggestion horrible si quelqu'un veut supprimer des fichiers "tous", au moins si c'est plus que disons 3 fichiers. Personne n'aime marteler la clé Y pour confirmer chaque suppression.
Essayez Il supprime tout fichier dans le répertoire "YourDirectory" P> p>
Y a-t-il un moyen de supprimer sans fournir de chemin? I.E Du répertoire sur votre CD-D?
Je ne suggérerais pas à un débutant UNIX pour utiliser le commutateur -R, que se passe-t-il si OP remplace une ligne de commande?
Compréhensible mais le problème est que je résiste au spam du dossier Qmail distant. Il y a des milliers de messages à effacer, donc j'ai besoin d'un moyen pratique de le faire sans confirmation de chaque suppression.
Je suppose qu'il veut effacer un dossier, ce qui signifie la suppression de sous-dossiers
Il n'y a pas de sous-dossiers comme mentionné dans l'OP.
@Amxx tant que quelqu'un met un mal / quelque part sur la ligne de commande. Lecture de la question que je suppose que OP n'est pas familiarisée avec la ligne de commande UNIX / Linux, alors je pense qu'il vaut mieux suggérer des commandes assez sûres. Le -R en monnaie avec le drapeau -f peut conduire à des situations très méchantes (après tout ce que nous ne savons pas comment la boîte est configurée, s'il fonctionne comme une racine ou des goûts)
C'est pourquoi je n'ai jamais raconté que je n'ai jamais été utilisé -rf, à mon avis, -r sans -f n'est pas si dangereux, et parfois, les nouveaux arrivants se demandent pourquoi RM ne supprimait pas le sous-dossier.
Vous pouvez supprimer tous les fichiers forment le répertoire actuel à l'aide de rm * code>
Si vous souhaitez supprimer d'un répertoire spécifique, tapez rm / chemin / * code> p>
Vous pouvez utiliser rm -r / urdir /*.* code>
Cela ignorerait les fichiers dans les sous-répertoires P>
J'essaie juste d'améliorer la lisibilité, mais a noté, merci.
Cela vous aidera, dans cette commande, si myDir code> a Toute sub_directory! Ça va soulever un message d'erreur et sauter ce sub_directory et supprimer le reste des fichiers dans le répertoire principal. P> P>
Vous pouvez utiliser tandis qu'un wildcard Vous pouvez aussi faire Il supprime uniquement des fichiers mais préserver les sous-répertoires: p> Vous pouvez également spécifier tout autre critère Recherche / chemin / à / votre / votre dossier / -Delete code> pour supprimer tout dans ce dossier. rm code> serait Braek avec trop de fichiers ("liste d'arguments trop longue"), cela fonctionne, peu importe le nombre de fichiers il y a. p> trouver code> prend en charge pour restreindre les "résultats". P > p>
C'est la meilleure réponse car elle préserve la structure de répertoire.
Ceci est le plus proche de la réponse correcte car toute autre solution proposée ignore les fichiers cachés (préfixés avec '.'). Comme il se tient cependant, la commande code> code> agit également sur les arguments de ligne de commande, à moins que vous spécifiez -Mindepth 1 code>. Avec cet addition, la solution est correcte.
Si vous êtes dans le répertoire où vous souhaitez supprimer tous les fichiers, la commande suivante fonctionne bien:
rm *
Si vous souhaitez supprimer tous les fichiers ainsi que tout le répertoire qui signifie tout, essayez ceci:
rm -rf *