OVH Cloud OVH Cloud

Terminal : produire une liste de répertoires

73 réponses
Avatar
olivier.marti
Bonjour,

Je souhaite travailler sur une liste de répertoires, avec un script ksh
du genre :

LISTE=$( find . -type d -print )

for DIR in ${LISTE}
do
cd "${DIR}"
...

Mais dans ma liste de répertoire certains noms contiennent des blancs.
Le 'for' les considère comme des séparateurs, et ça ne vas pas du tout !

Comment faire ?

Olivier

10 réponses

4 5 6 7 8
Avatar
olivier.marti
manet wrote:

Olivier Marti wrote:

Comment détruire les dossier vides,


2 questions adjacentes :
pourquoi se préoccupper des dossiers vides ?
quel est le crétin qui a créé des dossiers vides en nombre suffisant
pour qu'on s'en préoccuppe ?


Mais personne ne crée de dossier vide .... !!!

J'ai un logiciel de sauvegarde, Synchronize Pro qui en plus de faire une
image de l'état du disque, fait des archives par dates, qui me
permettent de retrouver des fichiers que j'aurais détruit. J'ai près
d'un an de recul.

Mais ce système prend de la place, et je fait du ménage de cerrtaines
choses. Par exemple, j'ai une série de répertoires dans lesquels je fait
des compilations fortran. Je tiens à garder les sources d'origine, les
.f ou .f90. Mais garder les fichiers intermédiaires de compilations (.o,
.a ou .mod) n'a pas d'intérêt. Même chose pour de compilations LaTeX et
tout une série de fichiers temporaires. J'ai aussi des fichiers de
journalisation de Ferret, etc .... Bref plein de choses inutile à garder
Faire du ménage sur ces fichiers inutiles permet d'économiser du disque,
et d'avoir 1 an d'archive au lieu de 3 mois si je ne fait rien.

Je pourrais demander à Synchronize Pro de ne pas sauver ces fichiers.
Mais c'est assez longuet à rentrer dans l'interface. Je trouve plus
simple de faire un script Unix qui fait du ménage de ces fichiers
inutiles.

Une fois ce ménage fait, je me retrouve parfois avec des dossiers vides
sur le disque de sauvegarde ....

Pour simplifier : ça n'est pas parce que tu ne comprends pas les besoins
des autres que ces besoins sont idiots ....

j'ai des embryons de réponses :
le crétin pourrait etre une application Unix qui fait n'importe quoi,
mais de façon systématique.


Raté !

on s'en préoccuppe parce qu'on est administrateur Unix...


Ben oui, je suis bien administrateur de ma machine :-)


Olivier


Avatar
pmanet
Olivier Marti wrote:

Je trouve plus
simple de faire un script Unix qui fait du ménage de ces fichiers
inutiles.

Une fois ce ménage fait, je me retrouve parfois avec des dossiers vides
sur le disque de sauvegarde ....


c'est exactement ce que je disais : le problème, c'est de se mettre en
position d'avoir suffisament de dossiers vides pour ressentir le besoin
d'avoir une routine pour les effacer, ce qui n'arrive pas à des gens
normaux.

Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique ; ton exemple se rapporte à : gérer les
problèmes absurdes qu'on se crée avec des outils indisponibles sous
environnement graphique...

ça ne me semble pas concluant !

--
www.D-L-S.org

Avatar
filh
manet wrote:

Olivier Marti wrote:

Je trouve plus
simple de faire un script Unix qui fait du ménage de ces fichiers
inutiles.

Une fois ce ménage fait, je me retrouve parfois avec des dossiers vides
sur le disque de sauvegarde ....


c'est exactement ce que je disais : le problème, c'est de se mettre en
position d'avoir suffisament de dossiers vides pour ressentir le besoin
d'avoir une routine pour les effacer, ce qui n'arrive pas à des gens
normaux.


Hum... voilà : je décharge mes photos de mon boitier numérique.
Elle vont dans des répertoires genre dcim/100nikon dcim/101nikon etc..
Et je mets les dcim dans des répertoires correspondant à chaque vidage
de carte.

Quand j'ai le temps, je mets de l'ordre, donc je range les photos dans
des répertoires plus spécifiques.

Et quand j'ai fini de ranger, j'ai besoin de nettoyer les répertoires
vide-carte-1/dcim/100nikon... vide-carte-n/dcim/10x-nikon

histoire de savoir un peu où j'en suis.

J'imaginque que donc je ne suis pas normal.

Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique ; ton exemple se rapporte à : gérer les
problèmes absurdes qu'on se crée avec des outils indisponibles sous
environnement graphique...


Je dois être absurde donc.

FiLH

--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org


Avatar
pmanet
FiLH wrote:

Quand j'ai le temps, je mets de l'ordre, donc je range les photos dans
des répertoires plus spécifiques.


tout le monde fait ça
comme ça prends effectivement des heures, et ligne par ligne, on a
largement l'occasion d'effacer (si on y tient..) les repertoires à
chaque fois qu'on en vide un ! ne serait-ce que pour constater la
progression de la tache...

Et quand j'ai fini de ranger, j'ai besoin de nettoyer les répertoires
vide-carte-1/dcim/100nikon... vide-carte-n/dcim/10x-nikon


ceci dit, à moins d'en avoir des dizaines de milliers, je ne pense pas
que ça serve à quelque chose d'effacer les repertoires vides sur les
machines actuelles.

en revanche, je conçois assez bien des petites routines à la gomme qui
te créent des milliers de repertoires de travail vides (initialement ou
secondairement) sans s'occupper ensuite de les effacer...

--
www.D-L-S.org

Avatar
olivier.marti
manet wrote:

Olivier Marti wrote:

Je trouve plus
simple de faire un script Unix qui fait du ménage de ces fichiers
inutiles.

Une fois ce ménage fait, je me retrouve parfois avec des dossiers vides
sur le disque de sauvegarde ....


c'est exactement ce que je disais : le problème, c'est de se mettre en
position d'avoir suffisament de dossiers vides pour ressentir le besoin
d'avoir une routine pour les effacer, ce qui n'arrive pas à des gens
normaux.

Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique ; ton exemple se rapporte à : gérer les
problèmes absurdes qu'on se crée avec des outils indisponibles sous
environnement graphique...

ça ne me semble pas concluant !


On est d'accord : la plupart du temps, les outils graphiques ne sont pas
concluant, parce que les concepteurs ne pensent jamais aux cas
particuliers de chaque utilisateurs.

Alors j'utilise l'outil graphique pour ce qu'il sait faire, et je
bricole derrière avec trois lignes de scripts, et ça me convient comme
ça.

Je pourrais faire moi-même mon script de sauvegarde parfaitement adapté
à mon usage avec rsync, mais j'ai la flemme ....

Olivier


Avatar
filh
manet wrote:

FiLH wrote:

Quand j'ai le temps, je mets de l'ordre, donc je range les photos dans
des répertoires plus spécifiques.


tout le monde fait ça
comme ça prends effectivement des heures, et ligne par ligne, on a
largement l'occasion d'effacer (si on y tient..) les repertoires à
chaque fois qu'on en vide un ! ne serait-ce que pour constater la
progression de la tache...


Oui mais imagine que je n'ai pas tout à fait le même mode de
fonctionnement que toi :) :)



Et quand j'ai fini de ranger, j'ai besoin de nettoyer les répertoires
vide-carte-1/dcim/100nikon... vide-carte-n/dcim/10x-nikon


ceci dit, à moins d'en avoir des dizaines de milliers, je ne pense pas
que ça serve à quelque chose d'effacer les repertoires vides sur les
machines actuelles.


Ben si : à savoir si j'ai bien vidé tous les répertoires tiens !
La bonne affaire !

Chuis déjà assez bordélique avec les répertoires pleins si en plus je
dois garder les vides !

Tu sais je ne gère QUE 140.000 photos...

FiLH


--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org


Avatar
laurent.pertois
manet wrote:

Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique ; ton exemple se rapporte à : gérer les
problèmes absurdes qu'on se crée avec des outils indisponibles sous
environnement graphique...


FileBuddy est un outil en GUI, je suis certain qu'on peut lui faire
chercher les fichiers dont parle Olivier et ensuite les effacer et du
coup se retrouver avec des dossiers vides.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
olivier.marti
manet wrote:

Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique


Je trouve ça curieux comme approche, et en fait franchement biaisé.

J'utilise Unix depuis 17 ans, et je commence à avoir quelques
familiarités avec la ligne de commande. La question que je me pose en
général est"qu'est que l'environnement graphique apporte par rapport à
la ligne de commande ?", c'est à dire l'inverse de la tienne. La réponse
étant souvent "rien", je fait beaucoup de chose avec des 'ls', 'rm',
'mv', 'find' et 'grep' qu'avec le Finder, la souris, Spotlight. Avec
l'avantage que ce que j'apprend est utilisable à l'identique sur les
serveurs Unix du labo ou du centre de calcul. Et aussi le fait que je
trouve autour de moi des personnes capables de répondre à mes questions
sur Unix, et bien peu sur le Finder et les environnements Mac.

Tu abordes les façons de travailler des autres avec une vue biaisée qui
correspond a ta formation, tes expériences et celles de ton entourage.
Mais les autres peuvent avoir des parcours très différents ....

Olivier

Avatar
Nicolas.MICHEL
Olivier Marti wrote:

Je pourrais demander à Synchronize Pro de ne pas sauver ces fichiers.
Mais c'est assez longuet à rentrer dans l'interface. Je trouve plus
simple de faire un script Unix qui fait du ménage de ces fichiers
inutiles.

Une fois ce ménage fait, je me retrouve parfois avec des dossiers vides
sur le disque de sauvegarde ....


Bon, donc tu n'as toujours pas résolu le problème malgré les diverses
réponses "cachées" dans ce fil ?

As-tu testé les commandes déjà évoquées ?

Ce que disait Laurent était pourtant intéressant :

Newsgroups: fr.comp.os.mac-os.x
Subject: Re: Terminal : ben dis donc...
From: (Laurent Pertois)
Date: Fri, 25 May 2007 15:47:02 +0200
Message-ID: <1hyoegr.1y1smc318a4antN%

Genre :

cd /copie/de/test

find . -name ".DS_Store" -print
find . -name ".DS_Store" -delete -print
find . -name ".DS_Store" -print

Puis pour les dossiers :

find . ! -type d -print |wc -l
find . -type d -print |wc -l

OldIFS='$IFS'
IFS='
'
for i in $(find -d . -type d)
do
rmdir "$i" 2>/dev/null
done

find . ! -type d -print |wc -l
find . -type d -print |wc -l

ça devrait le faire, je penses.
Même si c'est pas forcément très rapide.
L'important étant de tester d'abord sur une copie avant d'attaquer
l'original.
Le test devrait être réussi si les 2 commandes
"find . ! -type d -print |wc -l"
retournent le même nombre (donc que rien d'autre que des dossiers n'a
été effacé) mais que l'autre commande :
find . -type d -print |wc -l
retourne un nombre plus petit la seconde fois.
(donc que des dossier ont été effacés)

--
Nicolas

Avatar
Nicolas.MICHEL
Olivier Marti wrote:

La question que je me pose en général est"qu'est que l'environnement
graphique apporte par rapport à la ligne de commande ?", c'est à dire
l'inverse de la tienne. La réponse étant souvent "rien"


Bin étant aussi assez à l'aise en cli, je peux te répondre facilement :

Il y a tout un paquet de choses qui se font en 3 clics et qui en cli
nécessitent du taff. 3 exemples :

sudo drutil -drive internal burn -hfsplus image.iso ## = un clic

hdiutil attach -owners on backup.sparseimage ## = 2 clics

osascript -e "tell application "Finder" to open location
"smb://monserveur.ici.ch" " # 3 ou 4 clics

Contrairement à ce que tu semble dire :
- drutil, hdiutil ou osascript n'existe pas sur n'importe quel *nix.
- La syntaxe d'une commande se vérifie avant de la lancer.
- On oublie vite les commandes inhabituelles, il faut les noter.
- Il faut avoir accès à nos note, c'est pas toujours le cas.
- Si le résultat pause problème, écarter l'hypothèse d'une faute dans la
commande prends du temps.


La paresse étant source de productivité, la question est bien :
Le sujet était de savoir ce que le terminal apporte par rapport à
l'environnement graphique
Et non l'inverse.


Ceci dit, ça reste mon avis à moi selon l'usage que j'en ai, évidement.
--
Nicolas

4 5 6 7 8