Ll: not found

Résolu/Fermé
volcomboy62 - Modifié par volcomboy62 le 10/07/2013 à 17:30
 volcomboy62 - 12 juil. 2013 à 16:10
Bonjour,

J'essaie d'executer une commande dans un script .sh et j'ai une erreur :
ll : not found
cp: fichier cible manquant

la commande en question : (qui fonctionne sous unix)
cp 'll | grep 'NE5200IZ*' | sort -r | head -1 | cut -d ' ' -f 12' ../../Interface/AFI/fichierAFI/10072013


Je ne comprend pas pourquoi cette commande ne fonctionne pas dans mon script alors qu'elle fonctionne sous unix ....


Pouvez-vous m'aider ?

2 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
10 juil. 2013 à 19:00
Salut,
ll est un alias courant pour ls -l, et cet alias n'est pas défini pour le système/l'utilisateur avec lequel tu lances la commande.
Par ailleurs, il est conseiller d'utiliser la syntaxe $(...) pour récupérer le résultat d'une commande, plutôt que les guillemets simples inversés (question de lisibilité avant tout).
Ta commande peut donc être réécrite
cp $(ls -l | grep 'NE5200IZ*' | sort -r | head -1 | cut -d ' ' -f 12) ../../Interface/AFI/fichierAFI/10072013

Bonne continuation.
0
Merci cela fonctionne, par contre j'ai un autre soucis.

avec cette commande : ls -l | grep 'NE5300IZ*' | sort -r
j'essai de trier par date inversé et cela ne semble pas fonctionner.
En faite il a l'air de faire deux tri :
- un sur les dates avec les jours sur un caractère
- et un sur les dates avec les jours sur deux caractères. étrange ...

-rw-rw-r-- 1 hrdev hr 2397410 jui 9 10:46 NE5300IZ.2755
-rw-rw-r-- 1 hrdev hr 2397410 jui 9 08:36 NE5300IZ.30722
-rw-rw-r-- 1 hrdev hr 2397410 jui 8 16:17 NE5300IZ.3236
-rw-rw-r-- 1 hrdev hr 2397410 jui 8 16:17 NE5300IZ.2990
-rw-rw-r-- 1 hrdev hr 2397410 jui 8 15:47 NE5300IZ.1997
-rw-rw-r-- 1 hrdev hr 2397410 jui 10 16:47 NE5300IZ.22611
-rw-rw-r-- 1 hrdev hr 2397142 jun 12 15:30 NE5300IZ.32735


Avez-vous une explication ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
12 juil. 2013 à 11:19
Salut,

Parce qu'il faut donner à "sort" le champ à trier (par défaut c'est le 1er qu'il trouve)...

Sinon la commande "ls" a aussi une option pour trier selon la date...
0
dans ce cas là comment faire pour chercher le fichier le plus récent contenant le nom "NE5200IE*" et ne récupérer que le plus récent ?
dans ce cas présent je doit normalement récupérer le fichier NE5300IZ.22611 car c'est le plus récent parmis la liste.
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
12 juil. 2013 à 11:49
Pourquoi pas un

ls -lt NE5300IZ*
ou

ls -ltr NE5300IZ*
?

avec head ou tail ?
0
c'est sur quoi je suis parti : ls -t | grep 'NE5950IX*' | tail -1
et sa à l'air de fonctioner ^^
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
12 juil. 2013 à 13:07
C'est vrai que le -l (L) on s'en fiche ... Ca simplifie un peu la ligne initiale :p
0