Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

Gestion fichiers sous unix

jossly, le vendredi 18 juillet 2003 à 13:23:35 
 Signaler ce message aux modérateurs

Bonjour à tout le monde.
j'essaye de creer un script sous avec les commandes du c-shell unix pour visionner sur ecran tous les fichiers contenus dans mon reperoire et ses sous repertoires . mais le script m'affiche les fichiers de mon repertoire et pas ceux de ses sous repertoire. Qui peut me donner une idée ?

voici le script :

if ( ! -d $argv[1]) then
echo le parametre doit etre un repertoire
exit (0)
else if ( -d $argv[1]) then
cd $argv[1]
set tab=(`\ls -iR `)
set indice=2
while ($indice <= $#tab)
# parcour de tab qui conient le resultat de `ls -iR`
if ( -f $tab[$indice]) then
# on affiche le inoeud et le fichier correspondant

echo $tab[$indice-1] $tab[$indice]

else if ( -d $tab[$indice]) then
echo repertoire: $tab[$indice]
endif
@ indice++
end
endif


il ya une erreur mais je ne sais pas à quel endroit.

Merci de votre réaction.

jossly

1

teebo, le vendredi 18 juillet 2003 à 13:34:26

Je dis peut etre une connerie, mais pourquoi un script et pas un simple:

ls -R

?

.  .
\_/

Répondre à teebo

3

jossly, le vendredi 18 juillet 2003 à 13:42:18

Voila, en fait je la finalité du script est que apres je devrai effacer les fichiers synonymes dans tout l'arborecsence du repertoire. c'est -à -dire ceux qui ont le meme numero de inoeud. c'est pourqoi, je tente d'abord d'isoler les fichiers leguliers et leur inoeud en utilisant la commande ls ...

Répondre à jossly

2

Samya, le vendredi 18 juillet 2003 à 13:40:41

Tu dois peut etre utiliser une fonction récursive pour parcourir l'ensemble des sous répertoires

Répondre à Samya

4

jossly, le vendredi 18 juillet 2003 à 13:47:02

Je l'ai utilise justement dans la commande
set tab= (`ls -iR`)
la variable tab stocke un tableau de tout les fichiers et repertoires avec leur inoeud correspondants, je suppose. je pense. Mais la boucle de while n'entre pas dans les sour repertoire .

Jossly

Répondre à jossly

5

asevere, le vendredi 18 juillet 2003 à 14:00:33

Je peux dire une connerie ? :o)

manquerais pas des accollades pour le while dés fois ?
ou alors un endif vu que c'est un esle if et non un elif ?

++

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Répondre à asevere

6

jossly, le vendredi 18 juillet 2003 à 14:04:29

Non, pour le while, il n' y a pas d'accolade j'ai vérifié et pour le if c'est bon aussi les endif sont bien placés aussi

Merci
jossly

Répondre à jossly

7

jossly, le vendredi 18 juillet 2003 à 14:32:10

J'ai besoin de vos idée, reagissez s'il vous plais.

Jossly

Répondre à jossly

8

asevere, le vendredi 18 juillet 2003 à 14:41:31

Mouais ...

Je viens de tester le script...
ca ne marche pas pour la meme raison que tu a mis ton indice a 2 :)

dans la sortie de ls -iR tu a:
0 .:
1 total 1254
2 fichier...
3 fichier...
4 fichier...
5 rep machin...
6
7 ./machin:
8 total 5234
...

sans les numeros de lignes :)

au changement de repertoire tu a 3 ligne qui ne colle pas avec ton prog :o) (ici 6 7 8)

essaye de traiter la sortie avec sed ou awk avant de la mettre dans tab :)


Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Répondre à asevere

12

jossly, le samedi 19 juillet 2003 à 14:54:14

Je mets l'indice à 2 pour reperer le nom du fichier, car en position 1 cest son inoeud Et position 0 c'est le nom de tab.

si vous avez d'atres idées merci de me les donner.

Répondre à jossly

9

asevere, le vendredi 18 juillet 2003 à 15:00:02

Sorry,
deux lignes seulement puis que c'est ls et non ls -l :-P

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Répondre à asevere

10

rheax, le vendredi 18 juillet 2003 à 16:15:56

Le problème est que dans le script qd tu teste un dir. "if ( -d "$tab[$indice]")" tu reste ds le dir. courant donc qd tu testes le fichier suivant "if ( -f "$tab[$indice]") then" retourne faux car ce fichier est ds un sous-dir. OK?
Une solution est de ce déplacer ds les sous-dir. mais tab doit alors contenir les ".." pour pouvoir remonter.

Répondre à rheax

11

jossly, le samedi 19 juillet 2003 à 14:49:32

Le déplacement dans les sou-s rep, se devrais se faire recurssivement dans `ls -iR`, à mon avis, et l'indoce commence à deux porce que le nom du premier fichier rencotré doit se trouver en position 2 et son inoeud en postion 1. Peut être je me trompe.

Qu'en penses vous?

Mercie de votre réaction.

Jossly

Répondre à jossly

13

asevere, le samedi 19 juillet 2003 à 19:28:34

Est-ce que tu as un message d'erreur quelquonque ? si oui que dit-il ?

Est tu sur que la sortie de ton ls -iR ne renvoie aucune ligne blanche ?
(teste sur une console ls -1iR )

@++

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Répondre à asevere

14

 batmat, le samedi 19 juillet 2003 à 20:29:24

Moi je ferais pas comme ça...

Je commencerais par un "find ." qui te donnera tous les fichiers ... Ensuite, c'est facile de faire un ls -l sur chacun,
un tr -s ' ' pour simplifier les espaces
un cut -d' ' -f"le numéro du champ inode"

Etc.

Ca me parait beaucoup plus rapide et simple

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat
Tout les fichiers uninstall.exe supprimés (Résolu) Bonjour, je vien de remarquer un problème sur ma machine: j'ai plusieurs jeux d'installés dessus, et depuis je me suis rendu compte hier que tout les fichiers uninstall.exe de ces jeux ont été supprimés! comment je fais alors pour les désinstaller?... www.commentcamarche.net/forum/affich-5415158-tout-les-fichiers-uninstall-exe-supprimes
UNIX - Les fichiers Introduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de... www.commentcamarche.net/contents/unix/unix-fichiers.php3
Fichier Uninst.isu manquant Bonjour J'arrive pas à désinstaller le logiciel de ma carte réseau, il m'affichait à chaque fois que le fichier Uninst.isu est manquant ou altéré! Comment faire pour le retrouver ? Merci d'avance www.commentcamarche.net/forum/affich-1689246-fichier-uninst-isu-manquant
Comment lire un fichier ligne par ligneComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier... www.commentcamarche.net/faq/sujet-5027-comment-lire-un-fichier-ligne-par-ligne
[Linux] Gestion des attributs de fichiers sur ext2lsattr - chattr Introduction lsattr chattr Les attributs -A -S -a -c -D -d -I -i -j -s -T -t -u -E -X -Z Introduction Il existe pour le système de fichiers Second Extended Filesystem (ext2) donc également pour le Third... www.commentcamarche.net/faq/sujet-1345-linux-gestion-des-attributs-de-fichiers-sur-ext2
Discover, le transfert de fichiers en WiFi sur votre iPhoneDisponible sur l'App Store depuis le 20 novembre 2008, Discover est une application qui permet l'échange de fichiers du PC vers l'iPhone ou l'iPod Touch. Celle-ci installe un serveur WebDAV sur votre iPod ou iPhone. Simple à utiliser, elle nécessite... www.commentcamarche.net/faq/sujet-15195-discover-le-transfert-de-fichiers-en-wifi-sur-votre-iphone
[UNIX] Comparaison de fichier (Résolu)Salut à vous, je me suis cassé la tête toute la journée avant de vous demander de l'aide!! J'emploie un récepteur satellite "linux-based" qui n'a pas les commandes diff ou comm. d'où [UNIX] !! J'aimerais pouvoir comparer si un fichier downloadé est... www.commentcamarche.net/forum/affich-2611458-unix-comparaison-de-fichier
Compter lignes dans fichier sous UNIX (Résolu)Bonjour, j'ai un problème basique pour les pros d'UNIX mais que j'ai du mal à résoudre seul. J'ai un fichier dans lequel je dois compter les enregistrements qui commencent par un caratère (prennont 1 comme exemple). Quelle est la méthode la plus... www.commentcamarche.net/forum/affich-11867841-compter-lignes-dans-fichier-sous-unix
[VB-JAVA] encodage fichier en unicodeJ'essaie désespérément de convertir un fichier txt en unicode (afin de pouvoir utiliser son contenu pour la création d'un xml, sinon les caractères accentués passent en caractères chinois ...) Il peut y avoir 2 solutions à mon problème : - soit je... www.commentcamarche.net/forum/affich-79414-vb-java-encodage-fichier-en-unicode
PHP - Les fichiersLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier... www.commentcamarche.net/contents/php/phpfich.php3
Commandes UNIXTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ... www.commentcamarche.net/contents/unix/unixcomm.php3
Perl - Les fichiersLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles... www.commentcamarche.net/contents/perl/perlfich.php3