Le plus proche que j'ai eu est
# rm /path/to/directory/*.*
mais cela ne marche pas pour les fichiers sans extension ...
Linux n'utilise pas d'extensions. Il appartient au créateur du fichier de décider s’il souhaite que le nom porte une extension. Linux examine le premier octet pour savoir quel type de fichier il traite.
Pour tout supprimer dans un répertoire, utilisez:
rm /path/to/directory/*
Vous pouvez utiliser l'option -r
, par exemple:
rm -r /path/to/directory/*
pour supprimer également tous les sous-répertoires (ainsi que tout leur contenu) du répertoire dont vous supprimez le contenu. Sinon, une erreur s'affichera pour vous informer que le répertoire n'est pas supprimé.
Pour supprimer le dossier avec tout son contenu (y compris tous les dossiers intérieurs):
rm -rf /path/to/directory
Pour supprimer tous les contenu du dossier (y compris tous les dossiers intérieurs) mais pas le dossier lui-même:
rm -rf /path/to/directory/*
ou
rm -rf /path/to/directory/{*,.*}
si vous voulez vous assurer que les fichiers/répertoires cachés sont également supprimés.
Pour supprimer tous les "fichiers" d'un dossier ( et non supprimer les dossiers intérieurs):
rm -f /path/to/directory/{*,.*}
Attention: si vous avez des espaces dans votre chemin, assurez-vous de toujours utiliser des guillemets.
rm -rf /path/to the/directory/*
équivaut à 2 appels rm -rf
distincts:
rm -rf /path/to
rm -rf the/directory/*
Pour éviter ce problème, vous pouvez utiliser '
single-quotes'
(ne pas développer variables shell) ou "
double-quotes"
(agrandit Variables shell):
rm -rf "/path/to the/directory/"*
Où:
rm
- signifie "remove"-f
- signifie "force", ce qui est utile lorsque vous ne souhaitez pas être invité/demandé si vous souhaitez supprimer une archive, par exemple.-r
- signifie "récursif", ce qui signifie que vous souhaitez consulter tous les dossiers de manière récursive et tout supprimer.Pour supprimer tous les fichiers du répertoire (y compris les fichiers cachés et les sous-répertoires), exécutez:
rm -rf /path/to/directory/{*,.*}
Si vous souhaitez supprimer uniquement les fichiers de/path/to/directory, vous pouvez le faire.
find /path/to/directory -type f -print0| xargs -0 rm
ou
find /path/to/directory -type f -exec rm '{}' \;
Vous pouvez effectuer des chargements avec find
name__, l’avantage est de pouvoir répertorier ce qui est trouvé sans le rediriger vers rm
afin que vous puissiez voir ce qui sera supprimé avant de commencer.
Pour supprimer tous les fichiers et répertoires (y compris ceux cachés ) d'un répertoire, vous pouvez procéder comme suit:
supprimer le dossier, puis le recréer
rm -rf dir_name && mkdir dir_name
utilisez find
find dir_name -mindepth 1 -delete
Ici, nous spécifions -mindepth 1
pour exclure le répertoire dir_name lui-même.
Jetez un coup d’œil au lien suivant:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
Si vous souhaitez également supprimer tous les sous-répertoires et le répertoire lui-même, vous pouvez utiliser rm -rf /path/to/directory
. Mais vérifiez toujours votre ligne avant d'appuyer sur la touche Entrée. rm -rf
peut également causer beaucoup de dégâts, par exemple. si vous insérez accidentellement un espace après la première barre oblique en ayant les autorisations de superutilisateur ...
Puisque cette question est constamment au sommet de Google lorsque je le recherche moi-même:
Les autres réponses souffrent de problèmes différents:
Certains d'entre eux incluent .
et ..
, ce qui est bruyant, déroutant et gênant.
Certains d'entre eux oublient les fichiers cachés (fichiers commençant par un point).
Ils ne suppriment pas dans un ordre correct (le plus profond en premier) pour permettre la suppression du répertoire.
Ils descendent dans d'autres systèmes de fichiers (montés), ce qui est souvent indésirable.
Ils sont difficiles à étendre correctement avec des paramètres supplémentaires (plus de détails ci-dessous).
find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Notez que j'ai ajouté un argument -xdev
pour empêcher la descente dans les montages (comme /proc
etc.).
-depth
ou -delete
?Malgré le fait que les gens me votent constamment pour cela, ces méthodes ont un inconvénient: elles ne semblent pas suffisamment extensibles pour permettre à -Prune
ing un sous-répertoire (sans introduire plus de problèmes). En contraste avec cette méthode, vous pouvez insérer
-not \( -path "${DIR}/subdir" -Prune \)
avant l'argument -mindepth
d'exclure subdir
du contenu de celui-ci sera supprimé.
Vous pouvez cd
dans le répertoire, puis exécutez la commande rm *.*
comme dans le DOS, si vous vous en souvenez.
Pour supprimer le répertoire actuel, vous pouvez par exemple utiliser rm -d ./*
-d demande également de supprimer les répertoires.