Utiliser Bash
Disons donc que j'ai un tas de fichiers placés au hasard dans un répertoire parent ~/src
, je veux récupérer tous les fichiers correspondant à un certain suffixe et les déplacer (ou les copier) dans un ~/dist
répertoire.
Supposons à cet effet que tous les noms de fichiers ont cette convention de dénomination:
<filename_prefix>.<filename_suffix>
J'ai découvert que c'était un moyen rapide d'obtenir tous les fichiers avec un particulier filename_suffix
et de les mettre dans un dossier dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
Maintenant, un pas de plus ... comment puis-je utiliser la sortie de find, dans ce cas filename
, et utiliser le filename_prefix
pour générer un répertoire du même nom ~/dist
, puis déplacer (ou copier) tous les fichiers avec ce préfixe dans le répertoire approprié?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
Essentiellement, comment puis-je changer la commande ci-dessus (ou peut-être utiliser une autre commande), pour créer une structure comme celle-ci
(PRODUCTION)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
à partir d'une arborescence de répertoires comme celle-ci?
(CONTRIBUTION)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini