Comme c'est élevé sur la recherche Google, la réponse la plus simple est :
rm $directoryPath/*
où $directoryPath est le répertoire que vous souhaitez vider. Les crédits devraient aller à cbm3384 (qui, pour une raison quelconque, a obtenu des votes négatifs pour cette réponse, pourquoi ?)
Si vous ne souhaitez pas confirmer :
rm -f $directoryPath/*
Si vous ne croyez pas essayez man rm
ou
mkdir -p 1/2/3; echo 'hello1' > 1/hello1.txt; echo 'hello2' > 1/2/hello2.txt;echo 'hello3' > 1/2/3/hello3.txt
rm 1/2/*
Ce qui précède crée une structure de répertoire, qui a 'helloX.txt' dans chaque dossier (X est le niveau du répertoire). rm 1/2/*
supprime hello2.txt
et laisse l'autre structure intacte.
Aussi rm */*/*
supprime uniquement hello2.txt
. C'est le seul qui correspond au motif.
Juste un exemple de Makefile qui nettoie le répertoire tmp de cakephp et laisse la structure du répertoire intacte :
clean:
-rm -f tmp/*
-rm -f tmp/*/*
-rm -f tmp/*/*/*
-rm -f tmp/*/*/*/*
Moins devant le rm
signifie "ne pas s'arrêter en cas d'erreur" (le répertoire non supprimé renvoie une erreur). Si vous voulez qu'un niveau soit enregistré, supprimez simplement cette ligne, par ex. la deuxième ligne rm supprime les journaux.
Faites-moi savoir si vous avez un système qui fait autre chose (BSD ?).
MODIF : J'ai testé ceci sur ubuntu 12.04, osx lion et sourceforge.net shell. Tous se comportent comme l'explication ci-dessus.
find PATH -maxdepth 1 -type f -delete
MAIS cela ne vous demandera pas de confirmation ou de sortie ce qu'il vient de supprimer. Par conséquent, il est préférable de l'exécuter d'abord sans l'action -delete et de vérifier qu'il s'agit des bons fichiers.
Vous pouvez utiliser find
avec -type f
pour les fichiers uniquement et -maxdepth 1
donc find
ne recherchera pas les fichiers dans les sous-répertoires de /path/to/directory
. rm -i
vous invitera à chaque suppression afin que vous puissiez confirmer ou refuser la suppression. Si vous ne vous souciez pas d'être invité à confirmer chaque suppression, remplacez-le par rm -fv
(-f
pour forcer la suppression). Le -v
flag fait en sorte qu'à chaque suppression, un message s'affiche indiquant quel fichier vient d'être supprimé.
find /path/to/directory -maxdepth 1 -type f -exec rm -iv {} \;
Cela doit répondre aux critères :
PAS de répertoires
PAS de sous-répertoires
PAS les fichiers dans ces sous-répertoires.