OVH Cloud OVH Cloud

SHELL - navigation repertoire

2 réponses
Avatar
Grand's
Salut,

Voila j'ai un petit souci.
J'essaye de faire un script qui me permet de deplacer des fichiers se
trouvant dans des sous-repertoires vers le rep principal.
j'ai une structure du style:
/courant
rep1
sous-rep1
sous-rep2
sous-rep3
rep2
.....

au debut de mon script, je me place dans /courant,mais je sais pas comment
faire pour descendre dans rep1 ou rep2.
Y a t'il une commande pour entrer dans le premier rep rencontré ou doit on
stocker le nom des rep dans des variables et s'en servir pour l'ouvrir ??

Autre chose, est-il possible de compter le nombre de sous rep d'un rep ?


Merci

Grand's

2 réponses

Avatar
Cem
Voila j'ai un petit souci.
J'essaye de faire un script qui me permet de deplacer des fichiers se
trouvant dans des sous-repertoires vers le rep principal.
j'ai une structure du style:
/courant
rep1
sous-rep1
sous-rep2
sous-rep3
rep2
.....

au debut de mon script, je me place dans /courant,mais je sais pas comment
faire pour descendre dans rep1 ou rep2.
Y a t'il une commande pour entrer dans le premier rep rencontré ou doit on
stocker le nom des rep dans des variables et s'en servir pour l'ouvrir ??

Tu pourrais faire comme ça.

cd /courant
for f in `find -type f`
do
mv $f .
done
Ce qui signifie que tous les fichiers qui ne sont pas des répertoires ou
des liens symboliques seront déplacés sur le répertoire courant.

Ou encore (mais ça me paraît inutilement compliqué)
for d in `find -type d`
do
cd /courant/$d
for f in `find -type f`
do
mv $f /courant
done
done

Note aussi que ça peut se faire en une seule instruction.
find -type f -exec mv '{}' . ';'

Autre chose, est-il possible de compter le nombre de sous rep d'un rep ?


find -type d|wc -l

Avatar
Jerome
Grand's wrote:
Salut,

Voila j'ai un petit souci.
J'essaye de faire un script qui me permet de deplacer des fichiers se
trouvant dans des sous-repertoires vers le rep principal.
j'ai une structure du style:
/courant
rep1
sous-rep1
sous-rep2
sous-rep3
rep2
.....

au debut de mon script, je me place dans /courant,mais je sais pas comment
faire pour descendre dans rep1 ou rep2.
Y a t'il une commande pour entrer dans le premier rep rencontré ou doit on
stocker le nom des rep dans des variables et s'en servir pour l'ouvrir ??

Autre chose, est-il possible de compter le nombre de sous rep d'un rep ?


Merci

Grand's


Salut

Tu peux empiler de depiler les repertoire avec pushd et popd. Ca devrait
correspondre à ce que tu cherches