Je travaille sur une école et la question est de: Utiliser la commande ls
pour lister les fichiers dans le répertoire ‘apache2 / mods-available’. Ne listez que les fichiers commençant par ‘a’ et ayant l’extension de fichier ‘.conf’. Lister un fichier par ligne dans le répertoire. Entrez votre code bash dans $ () pour l’exécuter et renvoyer la réponse par exemple: ANSWER = $ (find. -Name ‘filename’)
J’ai essayé de résoudre le problème comme ceci:
Answer = $(ls -1 apache2/mods-available/a*.conf)
Et que je reçois cette réponse:
apache2/mods-available/actions.conf apache2/mods-available/alias.conf apache2/mods-available/autoindex.conf
C’est malheureusement faux car la réponse est la suivante:
actions.conf alias.conf autoindex.conf
Quelqu’un a-t-il une idée de ce qui ne va pas? Merci 🙂
Vous pouvez utiliser le script suivant
Answer=$(find apache2/mods-available/ -maxdepth 1 -name 'a*.conf' -exec basename {} \;)
maxdepth est de rechercher dans le répertoire 1 profondeur
-exec le nom de base {} \; est d’obtenir le nom
vous pouvez avoir plusieurs commandes dans votre $()
. donc lancez simplement:
Answer=$(cd apache2/mods-available; ls -1 "a*.conf")
=
ls
Merci à vous tous! Cette réponse fonctionne réellement pour moi:
$(ls apache2/mods-available/a*.conf | cut -d/ -f3)
Essayez avec Answer=$(ls -1 a*.conf)