Il y a des fichiers dans un répertoire dont les noms ne sont pas usuels (par exemple au format unicode). Comment les supprimer?Linux: Comment supprimer tous les fichiers (pas les répertoires) dans un répertoire lui-même (pas les enfants)
1
A
Répondre
1
D'abord, trouver les fichiers et les supprimer:
find [dir_path] -maxdepth 1 -type f | xargs rm -rf
Au-dessus est simple et ne fonctionne quand il y a un espace dans l'un des nom de fichier (s). Donc, j'ai écrit une commande complexe et complète pour gérer les espaces aussi:
trouver ./ -maxdepth 1 -type f | awk -F '/' '{printf' '% s' \ '' \ n ", $ 2} '| xargs rm -rf
"-maxdepth 1" signifie simplement à partir du répertoire non Childs. Dans les autres moyens, pas de recherche récursive. Comme vous le savez, "xargs" exécute une commande suivante sur la liste qui lui est envoyée.
1
Vous pouvez simplement utiliser les rm
:
rm .* *
Il ne supprime pas les répertoires et ne récursif pas en eux par défaut.
Ne fonctionne pas pour les noms de fichiers contenant des espaces. – choroba