Je devrais faire écho uniquement aux noms de fichiers ou de répertoires avec cette construction:
ls -Al | while read string
do
...
done
ls -Al
sortie:
drwxr-xr-x 12 s162103 studs 12 march 28 12:49 personal domain
drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_html
drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
Par exemple si j'essaye:
ls -Al | while read string
do
echo "$string" | awk '{print $9}
done
puis ne produire que des fichiers et des répertoires sans espaces. Si le fichier ou le répertoire contient des espaces tels que "domaine personnel", il ne s'agira que du mot "personnel".
J'ai besoin d'une solution très simple. Peut-être qu'il y a une meilleure solution que awk.
ls -Al | while
. Un moyen simple et plus fiable est for string in *; do echo "$string"; done
.
ls
? L'analyse syntaxique ls
et le "travail dans tout * nix et ne cassera pas si quelque chose s'est passé" ne vont pas bien ensemble.
ls -Al *' '*
?ls
La sortie de l' analyse ne mène à rien de bon.