Comment puis-je déplacer les fichiers contenus dans tous les sous-répertoires vers le répertoire actuel, puis supprimer les sous-répertoires vides?
J'ai trouvé cette question , mais en adaptant la réponse à:
mv * .
n'a pas marché; J'ai reçu beaucoup d'avertissements ressemblant à:
mv: wil and ./wil are identical
Les fichiers contenus dans les sous-répertoires ont des noms uniques.
la source
-n, --no-clobber
ne pas écraser un fichier existant. Vous pourriez être intéressé-b, --backup
aussi.Essaye ça:
Plus d'infos: Essayez le find-stamement seul, il devrait vous donner une liste avec tous les fichiers que vous voulez déplacer (laissez de côté le
-print0
). Exemple:avec
-print0
etxargs
vous créez maintenant une liste d'instructions à exécuter. Le-J %
drapeau signifie, insère l'élément list ici, ilmv $FILE .
est donc exécuté pour chaque fichier trouvé.Ce qui précède fonctionne pour le xargs BSD. Si vous utilisez la version GNU (Linux), prenez à la
-I %
place de-J %
la source
Bash 4:
la source
1 astuce rapide, ne fonctionne que si vos fichiers ont des extensions (avec un point):
la source
Il suffit de lancer cette commande :-)
mv **/*.* .
la source
.
de nom dans leur nom, n'est-ce pas?