Error de comando ls a través de SFTP en el script de shell de Linux

tengo el siguiente código:

files=$(lftp -u mgtwrk35,Unix11! sftp://illin634<<EOF
cd some_dir
ls | tail -1
EOF)

¿Por qué funciona el código anterior, pero si agrego a la función ls -tr como:

ls -tr | tail -1

no funciona y me da el siguiente mensaje:

ls: invalid option -- t
ls: invalid option -- r

Gracias de antemano por la respuesta

preguntado el 03 de mayo de 12 a las 16:05

ls in lftp no es compatible -t y -s parámetros. -

1 Respuestas

El sistema ls en lftp no es lo real. También se llama "ls" pero no admite todos los parámetros que puede encontrar en el estándar ls.

  • find le permite listar recursivamente los archivos.
  • cls --sort=date le permite ordenar por fecha de modificación.

No sé cómo combinar los dos. Hay una solución alternativa mencionada por Nicolas Noble, que es usar awk para post-procesar el resultado de find.

contestado el 03 de mayo de 12 a las 16:05

Hola, ¿puedes explicar más sobre la forma en que mencionaste anteriormente? - Robar

find te da "ls -r". Entonces es posible hacer find | whatevery whatever podrá reordenar esos archivos según algunos criterios, p. viendo el valor de cls --sort=date. No sé sobre awk, por lo que sería difícil proporcionar una solución que funcione. ¿Realmente necesitas esto? - Quentin Pradet

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.