Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/01/2012, à 03:10

mithrandir79

[Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Bonjour (ou bonsoir)

J'ai besoin pour script de lister un ensemble de fichier avec leur lien absolue.

Voilà où j'en suis avec cette ligne de code:

ls -R > liste"$(date +%y%m%d)".txt

J'obtiens ça:

.:
14-11.jpg
1c5f540c7f000001649e874d60332490.jpg
4gatekeepers.jpeg
avatar-57.jpg
caladan
kindle

./caladan:
01373.jpg
1269332673_1024x768_fantasy-moonlight-wallpaper.jpg
21153ddigitalart3dscene.jpg
2368964885_1bcae330c4_o.jpg

./kindle:
1024_Earth Starfleet - blue.jpg
1237452333_1024x768_fullmetal-alchemist-icon.jpg
4177-star-wars-clavier-WallFizz.jpg

Et j'aimerai obtenir ça:

/home/user/Images/14-11.jpg
/home/user/Images/1c5f540c7f000001649e874d60332490.jpg
/home/user/Images/4gatekeepers.jpeg
/home/user/Images/avatar-57.jpg

/home/user/Images/caladan/01373.jpg
/home/user/Images/caladan/1269332673_1024x768_fantasy-moonlight-wallpaper.jpg
/home/user/Images/caladan/21153ddigitalart3dscene.jpg
/home/user/Images/caladan/2368964885_1bcae330c4_o.jpg

/home/user/Images/kindle/1024_Earth Starfleet - blue.jpg
/home/user/Images/kindle/1237452333_1024x768_fullmetal-alchemist-icon.jpg
/home/user/Images/kindle/4177-star-wars-clavier-WallFizz.jpg

Je tiens à dire que j'ai lu le manuel "man ls" et que je n'ai pas vu d'option à "ls" qui me ferai obtenir ce résultat.

- Est-il possible d'obtenir ce résultat avec "ls" et comment?

- Sinon existe t-il un autre outil pouvant le faire?

Merci d'avance...

Dernière modification par mithrandir79 (Le 16/01/2012, à 05:29)

Hors ligne

#2 Le 16/01/2012, à 03:16

sputnick

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Salut,

pour avoir le chemin absolu de tout chemin relatif, il faut utiliser la commande :

readlink -f /path/to/something

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 16/01/2012, à 03:35

mithrandir79

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Je connais readlink, et je ne pense pas que je peux l'appliquer dans mon cas. Car ce que je voudrais c'est avoir une liste dans un fichier texte en sortie de "ls". Donc je vois mal comment utiliser readlink, d'autant que je n'arrive pas non plus à obtenir une liste de lien relatif en sortie de "ls".

Mais merci d'avoir proposé wink

Hors ligne

#4 Le 16/01/2012, à 04:11

Sandrew

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Salut,

Quelques solutions ici.

++

Sandrew

Hors ligne

#5 Le 16/01/2012, à 04:48

sputnick

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Voici ce que tu demandes (ca me plait pas trop d'utiliser ls pour ça)

ls -R | while read a; do [[ "$a" == '' || "$a" == ./* ]] && echo || readlink -f "$a"; done

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#6 Le 16/01/2012, à 04:51

mithrandir79

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

Merci sandrew pour ce lien ^^ la même question que moi mais en anglais.

Je vais éplucher tout ça... pour l'instant cette ligne se rapprocherai assez de ce que je veux...

ls -d -1 $PWD/*.* > liste"$(date +%y%m%d)".txt

dommage que ce code ne soit pas possible:

ls -Rd1 $PWD/*.* > liste"$(date +%y%m%d)".txt

l'option "d" pour afficher les répertoires rend impossible l'option récursive "R".

J'avais déjà utiliser cette option "d" pour butter sur ce souci.

Je regarde le reste et je verrai si je trouve...

[edit]
ok la solution à mon problème est la suivante:

find 'pwd' > liste"$(date +%y%m%d)".txt

Encore merci sandrew comme quoi on ne cherche jamais assez avant de poser une question...
[/edit]

Dernière modification par mithrandir79 (Le 16/01/2012, à 05:16)

Hors ligne

#7 Le 16/01/2012, à 05:12

sputnick

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

T'a test ma solution ?!


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#8 Le 16/01/2012, à 05:24

Hizoka

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

ca te va pas :

find "${PWD}" -type f > liste"$(date +%y%m%d)".txt

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 16/01/2012, à 05:25

mithrandir79

Re : [Résolu] Comment obtenir une liste de chemin absolu de fichier avec ls

@sputnick

J'avais pas vu, j'étais plongé dans les man de find et de ls. Mais oui je viens de tester ta solution juste pour si ça fonctionne. ça donne un résultat comme le find 'pwd' à ceci près qu'il y a deux lignes de sauter par répertoire et que les répertoires "kindle" et "caladan" sont afficher parmi les fichier. Et puis je d'accord avec toi ce n'est pas très élégant comme procéder.

Merci quand même ^^

@hizoka

Merci pour l'option "-type f" c'était juste ce qui me manquait. Donc mon affaire est résolue.

[edit]
Une petite amélioration à la ligne de code afin d'avoir une liste classée par ordre alphabétique:

find "${PWD}" -type f | sort -g > liste"$(date +%y%m%d)".txt

et pour n'obtenir que la liste des fichiers sans les sous répertoire:

find "${PWD}" -type f | sed -e "s/\/.*\///" | sort -g > liste"$(date +%y%m%d)".txt

[/edit]

Dernière modification par mithrandir79 (Le 16/01/2012, à 06:33)

Hors ligne