Aller au contenu

Script list de fichier vers fichier .txt

Featured Replies

Posté(e)

Bonjour,

J'essaye de faire une liste des dossiers/fichiers sur un dossier precis vers un fichier .txt.

Après bcp de recherche cela ne marche pas.

Le code le plus simple que j'ai trouvé c'est cela :

ls -Rl /volume1/BABA/* > /volume1/BABA/liste.txt

mm ce code, ne fonctionne pas

QQn aurait une idée?


Bonne journée

Posté(e)
  • Auteur

Tjrs en erreur

 

J'ai essayé cela

ls -Rl /volume1/BABA/  > liste.TXT

Je reçoit ce message d'erreur par mail

-------------------------------------------------------------------

Tâche : LISTE 2

Heure de début : Tue, 26 Jul 2022 17:05:52 GMT
Heure d'arrêt : Tue, 26 Jul 2022 17:05:59 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :

------------------------------------------------------------

Posté(e)
Il y a 5 heures, GARUDASEB a dit :

Tjrs en erreur

 

J'ai essayé cela

ls -Rl /volume1/BABA/  > liste.TXT

Je reçoit ce message d'erreur par mail

-------------------------------------------------------------------

Tâche : LISTE 2

Heure de début : Tue, 26 Jul 2022 17:05:52 GMT
Heure d'arrêt : Tue, 26 Jul 2022 17:05:59 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :

------------------------------------------------------------

Visiblement, ça n'est pas exécuté en mode console.
Comment est-ce exécuté ?

Posté(e)
  • Auteur

Bien vu.!!!

J'ai oublié de préciser, mes excuses, que je veux faire ce script en mode "tâches planifiées"

Désolé de l'oubli.

Je suppose que cela change tout ?

Bonne soirée 

Posté(e)
  • Auteur

Hello

Que je sois avec "Mon User" ou en "Admin" ou en "Root" cela ne fait pas de différence

Modifié par GARUDASEB

Posté(e)

La tâche est bien exécutée. Par contre il faudrait définir un chemin de solution absolu pour le fichier de sortie, sinon il est probablement créé dans le dossier home de l'utilisateur.

Modifié par PiwiLAbruti
Put@!# de correcteur automatique 🤬

Posté(e)
  • Auteur

effectivement cela marche avec

ls -Rl /volume1/A-TRAITER/ >/volume1/A-TRAITER/liste.txt

Par contre, le format de sortie n'est pas Top :

Je voudrais que cela ressemble (pour pouvoir le retraiter après) à cela pour chaque fichier :

/volume1/A-TRAITER/Fichier1.avi

/volume1/A-TRAITER/Fichier1.doc

........

Je suppose qu'il faut rajouter des arguments au début

 

Merci pour votre aide !!!

 

 

Posté(e)
Il y a 6 heures, PiwiLAbruti a dit :

La tâche est bien exécutée. Par contre il faudrait définir un chemin de solution absolu pour le fichier de sortie, sinon il est probablement créé dans le dossier home de l'utilisateur.

Moi je suis resté sur sa ligne du premier post, c'était correct hormis le jocker

Sinon pour la liste simple, suffit de faire un simple ls -R et pas ls -Rl

Posté(e)
il y a 14 minutes, Einsteinium a dit :

Sinon pour la liste simple, suffit de faire un simple ls -R et pas ls -Rl

Ça ne donne pas le résultat demandé :

Il y a 5 heures, GARUDASEB a dit :

Par contre, le format de sortie n'est pas Top :

Je voudrais que cela ressemble (pour pouvoir le retraiter après) à cela pour chaque fichier :

/volume1/A-TRAITER/Fichier1.avi

/volume1/A-TRAITER/Fichier1.doc

D'où la commande que j'ai donnée un peu plus haut.

Posté(e)
  • Auteur

hello pour la commande

user@DiskStation:~$ ls -lrt -d -1 "$PWD"/{*,.*} | awk '{print $9}' /volume1/A-TRAITER/ >/volume1/A-TRAITER/liste.txt

Je reçois le message d'erreur :

-------------------------------------------

Le planificateur de tâches a terminé une tâche planifiée.

Tâche : LISTE 2 A-TRAITER
Heure de début : Thu, 28 Jul 2022 07:50:32 GMT
Heure d'arrêt : Thu, 28 Jul 2022 07:50:32 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :
/bin/bash: user@DiskStation:~$: command not found
awk: warning: command line argument `/volume1/A-TRAITER/' is a directory: skipped

--------------------------------------------------------------------

Posté(e)
  • Auteur

En effet cela marche pas mal avec :

ls -rt -d -1 "$PWD"/{*,.*} /volume1/A-TRAITER/* >/volume1/A-TRAITER/liste.txt

J'ai pu tester sur un autre dossier. mais cela ne remonte pas les sous-dossiers j'ai l'impression

Comment changer la profondeur de recherche ?

 

Modifié par GARUDASEB

Posté(e)

Ça ne faisait pas parti du cahier des charges 😅

Essaye en mettant R dans les paramètres

ls -rtR -d -1 "$PWD"/{*,.*} /volume1/A-TRAITER/* >/volume1/A-TRAITER/liste.txt

Posté(e)
Il y a 1 heure, GARUDASEB a dit :

Je reçois le message d'erreur

user@DiskStation:~$ ls -lrt -d -1 "$PWD"/{*,.*} /volume1/A-TRAITER/ | awk '{print $9}' >/volume1/A-TRAITER/liste.txt
Posté(e)
  • Auteur

Rebonjour à tous les deux

@MilesTEG1

pas mieux avec : ls -rtR -d -1 "$PWD"/{*,.*} /volume1/A-TRAITER/* >/volume1/A-TRAITER/liste.txt

Je n'ai pas les sous-dossiers

@PiwiLAbruti

user@DiskStation:~$ ls -lrt -d -1 "$PWD"/{*,.*} /volume1/A-TRAITER/ | awk '{print $9}' >/volume1/A-TRAITER/liste.txt

Me renvoie :

Tâche : LISTE 2 A-TRAITER
Heure de début : Thu, 28 Jul 2022 09:30:55 GMT
Heure d'arrêt : Thu, 28 Jul 2022 09:30:55 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :
/bin/bash: user@DiskStation:~$: command not found

 

 

Posté(e)
il y a 4 minutes, GARUDASEB a dit :

Me renvoie :

Tâche : LISTE 2 A-TRAITER
Heure de début : Thu, 28 Jul 2022 09:30:55 GMT
Heure d'arrêt : Thu, 28 Jul 2022 09:30:55 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :
/bin/bash: user@DiskStation:~$: command not found

Aucune idée, cette commande fonctionne chez moi. Par contre je n'ai pas trouvé le moyen de parcourir récursivement les dossiers. -R semble inopérant lorsque -d est utilisé.

En fait il ne faut pas utiliser la commande ls, mais find :

find /volume1/A-TRAITER/* > /volume1/A-TRAITER/liste.txt

 

Posté(e)
  • Auteur

en effet

c'est parfait avec FIND !!!

find /volume1/A-TRAITER/* > /volume1/A-TRAITER/liste.txt

un grand merci à vous

Bonne journée

 

Modifié par GARUDASEB

Posté(e)

Fait gaffe si tu veux utiliser le liste.txt avec un autre script, il va contenir aussi les noms des dossiers :

/volume1/A-TRAITER/fichier1.toto
/volume1/A-TRAITER/dossier
/volume1/A-TRAITER/dossier/fichier2.toto

Posté(e)
  • Auteur

Oui effectivement, du coup je mets nom de fichier "ListeA-TRAITER.txt"

Par contre je m'appercois quand je fouille un dossier racine avec un espace du type "BABA BOBO", le script ne fonctionne pas mais cela fonctione si le nom est "BABA-BOBO"

il y a comme une rupture dans le script.....

 

 

Posté(e)

Colle le code de ton script ou partage un lien GitHub qu'on voit ce qu'il fait et comment ne pas traiter les dossiers 🙂

C'est en bash ?

Si c'est du bash, tu peux faire le teste de si l'élément est un fichier :

if [ -f $FILE ]
	then 
    
fi

Ou si c'est un dossier :

if [ -d $FILE ]
	then
    
fi

 

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.