Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1042 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash] effectuer un ls sans afficher chemin des fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash] effectuer un ls sans afficher chemin des fichiers

n°1090725
real_matho​s
Posté le 17-11-2008 à 19:52:08  profilanswer
 

Salut,
J'ai besoin pour un script bash de lister les fichiers qui se trouvent dans un répertoire (répertoire ./serveur/), mais sans afficher le chemin relatif du fichier.
J'aimerais donc savoir s'il existe un attribut de ls qui permet d'effectuer cette opération, parce que si c'est le cas je ne l'ai pas trouvé.
 
Merci d'avance!
A+

mood
Publicité
Posté le 17-11-2008 à 19:52:08  profilanswer
 

n°1090727
o'gure
Modérateur
Multi grognon de B_L
Posté le 17-11-2008 à 20:04:58  profilanswer
 

aller dans le répertoire puis lister le contenu du répertoire courant

cd ./serveur
ls


ls récursif

ls -R


ls récursif en filtrant sur le nom d'un fichier

ls -R | grep monfichier


comment veux tu lister des fichiers si tu ne dis pas à ls où ils se trouvent [:pingouino]

Message cité 1 fois
Message édité par o'gure le 17-11-2008 à 20:05:09

---------------
Relax. Take a deep breath !
n°1090728
Le_Tolier
Hello IT ?
Posté le 17-11-2008 à 20:06:43  profilanswer
 

a coup de basename ?


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°1090730
real_matho​s
Posté le 17-11-2008 à 20:09:19  profilanswer
 

o'gure a écrit :

aller dans le répertoire puis lister le contenu du répertoire courant

cd ./serveur
ls


ls récursif

ls -R


ls récursif en filtrant sur le nom d'un fichier

ls -R | grep monfichier


comment veux tu lister des fichiers si tu ne dis pas à ls où ils se trouvent [:pingouino]


Merci pour ta réponse, mais en fait ce n'est pas ça le problème, je donne bien le répertoire où se trouvent les fichiers (ls ./serveur/*.*@$login).
Le problème c'est qu'il m'affiche à chaque fois le dit répertoire devant chaque fichier listé.


Message édité par real_mathos le 17-11-2008 à 20:09:33
n°1090778
oxman
xiii
Posté le 17-11-2008 à 22:54:05  profilanswer
 

Ez:~ oxman$ ls Downloads/*.dmg | xargs basename
Parallels-Desktop-fr_FR-4.0.3522.206018.dmg
SCPlugin-0.7.2-1.4.6.dmg
TextMate_1.5.7.dmg
WhatPulse for Mac.dmg
Zooom_Latest.dmg
eve-001881_64451_mac.dmg
 


---------------
LeRobot : un bot discord qui permet faire des stats sur vos temps de jeux
n°1090785
real_matho​s
Posté le 17-11-2008 à 23:36:02  profilanswer
 

Merci pour ta réponse, c'est ce dont j'avais besoin!

n°1090830
e_esprit
Posté le 18-11-2008 à 10:15:39  profilanswer
 

C'est pas comme si Le_Tolier t'avais donné la réponse... :o  

Le_Tolier a écrit :

a coup de basename ?


[:anathema]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1090833
M300A
Posté le 18-11-2008 à 10:23:23  profilanswer
 

Attention: c'est méthode ne te permettra pas de travailler sur une grosse liste de fichier.
Find est plus approprié pour ce genre de choses:
 


gandalf@scrubs:~$ find /tmp -maxdepth 1 -type f -exec basename {} \;
cd_lrsdemo_latest.iso.part
favicon.png
space.gif
README
Web License.rtf
.X0-lock
linux-2.6.27.4.tar.bz2
e1000-8.0.6.tar.gz
RAID_Web_Console_Linux.bin
RAID_Web_Console_Linux.jar
SqlDriver.php
Image LRS sous XEN.doc
.hpacucli
bla.csv
Linux WebConsole_readme.txt
Nicotine+-1.2.10svn.exe
Linbox_Rescue_Server_Installation-1.iso
bplogo.gif
ir2_Linux_Webconsole_v2.8-00-5.tgz


Message édité par M300A le 18-11-2008 à 10:23:49
n°1090970
sputnick
bip...bip...bip...bip...bi...b
Posté le 18-11-2008 à 20:07:07  profilanswer
 

Autre methode fiable et portable si bash est installé :
 

Code :
  1. while read a; do echo "${a##*/}"; done < <(find /path)


 
ou aussi
 

Code :
  1. find /path | while read a; do echo "${a##*/}"; done


 
J'utilise seulement find et des "built-ins" bash ;)
"parameter expansion" et les "process substitution"

n°1091116
arsunik
ma tuxitude me beastifie
Posté le 19-11-2008 à 12:38:19  profilanswer
 

Le plus rapide et qui fonctionnera meme avec des noms de fichier contenant des espaces serait:
 

Code :
  1. find /path -print0 | xargs -0 basename


 
Mais find propose aussi printf et en une seule commande on a:
 

Code :
  1. find /path -printf "%f\n"



---------------
[:arsunik]  Les tournois de badminton
mood
Publicité
Posté le 19-11-2008 à 12:38:19  profilanswer
 

n°1091735
sputnick
bip...bip...bip...bip...bi...b
Posté le 21-11-2008 à 12:05:59  profilanswer
 

find /path -printf "%f\n"


 
Pas mal celle là :)
Par contre xargs, je suis pas fan. Jamais besoin de lui, ya d'autres façons de nettoyer les "\n" "\t" et espaces.

echo *

n°1091737
Le_Tolier
Hello IT ?
Posté le 21-11-2008 à 12:08:40  profilanswer
 

e_esprit a écrit :

C'est pas comme si Le_Tolier t'avais donné la réponse... :o  


 


je suis comme les grands artistes ignorés de mon vivant mais je serais reconnu après ma mort  [:zytrasnif]


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash] effectuer un ls sans afficher chemin des fichiers

 

Sujets relatifs
[bash] trouver le fichier le plus recent dans un dossier avec findSamba, lien symboliques, et masques de creation de fichiers
[bash] commande lors de l'ouverture d'un terminalrécupérer des fichiers via putty scp / via pscp
desinstallation logiciel linux mais pas des fichiers de configurationsqu'el est le meilleur logiciel pour ouvrir des fichiers pdf avec ubunt
Antivirus pour serveur de fichiers sous LinuxBASH - Date de la veille sous FreeBSD
fichiers de configurationTaille des fichiers par file system
Plus de sujets relatifs à : [bash] effectuer un ls sans afficher chemin des fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR