GARUDASEB Posté(e) le 26 juillet 2022 Posté(e) le 26 juillet 2022 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 0 Citer
ml78 Posté(e) le 26 juillet 2022 Posté(e) le 26 juillet 2022 Que donne : ls -Rl /volume1/BABA/ 0 Citer
Einsteinium Posté(e) le 26 juillet 2022 Posté(e) le 26 juillet 2022 Effectivement le * ne sert à rien… 0 Citer
GARUDASEB Posté(e) le 26 juillet 2022 Auteur Posté(e) le 26 juillet 2022 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 : ------------------------------------------------------------ 0 Citer
ml78 Posté(e) le 26 juillet 2022 Posté(e) le 26 juillet 2022 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é ? 0 Citer
GARUDASEB Posté(e) le 26 juillet 2022 Auteur Posté(e) le 26 juillet 2022 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 0 Citer
Einsteinium Posté(e) le 26 juillet 2022 Posté(e) le 26 juillet 2022 Tu as choisis qui en utilisateur pour exécuter cette commande ? ^^’ 0 Citer
GARUDASEB Posté(e) le 27 juillet 2022 Auteur Posté(e) le 27 juillet 2022 (modifié) Hello Que je sois avec "Mon User" ou en "Admin" ou en "Root" cela ne fait pas de différence Modifié le 27 juillet 2022 par GARUDASEB 0 Citer
PiwiLAbruti Posté(e) le 27 juillet 2022 Posté(e) le 27 juillet 2022 (modifié) 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é le 27 juillet 2022 par PiwiLAbruti Put@!# de correcteur automatique 🤬 0 Citer
GARUDASEB Posté(e) le 27 juillet 2022 Auteur Posté(e) le 27 juillet 2022 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 !!! 0 Citer
MilesTEG1 Posté(e) le 27 juillet 2022 Posté(e) le 27 juillet 2022 Essaye ceci : ls -rt -d -1 "$PWD"/{*,.*} > toto.list ça liste les fichiers cachés aussi. Si tu ne les veux pas, fait ça : ls -d $PWD/* > toto.list Résultats obtenus après une recherche simple : https://duckduckgo.com/?q=bash+ls+with+full+path&kp=1&ia=web 0 Citer
PiwiLAbruti Posté(e) le 27 juillet 2022 Posté(e) le 27 juillet 2022 user@DiskStation:~$ ls -lrt -d -1 "$PWD"/{*,.*} | awk '{print $9}' 0 Citer
Einsteinium Posté(e) le 27 juillet 2022 Posté(e) le 27 juillet 2022 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 0 Citer
PiwiLAbruti Posté(e) le 27 juillet 2022 Posté(e) le 27 juillet 2022 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. 0 Citer
GARUDASEB Posté(e) le 28 juillet 2022 Auteur Posté(e) le 28 juillet 2022 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 -------------------------------------------------------------------- 0 Citer
MilesTEG1 Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 @GARUDASEBessaye une des commandes que j’ai posté. Ça devrait fonctionner. 0 Citer
GARUDASEB Posté(e) le 28 juillet 2022 Auteur Posté(e) le 28 juillet 2022 (modifié) 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é le 28 juillet 2022 par GARUDASEB 0 Citer
MilesTEG1 Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 Ç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 0 Citer
PiwiLAbruti Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 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 0 Citer
GARUDASEB Posté(e) le 28 juillet 2022 Auteur Posté(e) le 28 juillet 2022 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 0 Citer
PiwiLAbruti Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 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 0 Citer
GARUDASEB Posté(e) le 28 juillet 2022 Auteur Posté(e) le 28 juillet 2022 (modifié) en effet c'est parfait avec FIND !!! find /volume1/A-TRAITER/* > /volume1/A-TRAITER/liste.txt un grand merci à vous Bonne journée Modifié le 28 juillet 2022 par GARUDASEB 0 Citer
MilesTEG1 Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 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 0 Citer
GARUDASEB Posté(e) le 28 juillet 2022 Auteur Posté(e) le 28 juillet 2022 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..... 0 Citer
MilesTEG1 Posté(e) le 28 juillet 2022 Posté(e) le 28 juillet 2022 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 0 Citer
Messages recommandés
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.