Me gustaría hacer algo como esto para mover los dos últimos archivos descargados:
mv ` ls -rt ~/Downloads/ | tail -2 ` .
Lamentablemente, lssolo da los nombres de los archivos. ¿Cómo puedo adaptar el código anterior?
(Antes de que alguien lo señale, soy consciente de los problemas para canalizar la salida de ls. Solo usaría esto cuando conozca los nombres de archivo en cuestión).

findlugar.Respuestas:
De acuerdo, así que si no te rindes
ls, al menos trata de dejar el hábito de usar backticks para todo, especialmente cuandoxargses mejor:fuente
xargsme agrada más que los backticks. Pero, ¿hay alguna razón técnica para preferir esta secuencia de tuberías yxargssobre el uso de backticks o es solo una cuestión de gustos?ls, puedes aprovecharxargs -0lsSe desaconseja el análisis : mywiki.wooledge.org/ParsingLsPuedes usar GNU
findallí:Las
find -printfopciones:%Tspara mostrar el tiempo como época%pla ruta del archivoVer
man find | less +/'^ *-printf'editar
Si necesita tratar con espacios en los nombres de archivo, le recomiendo esta otra solución:
fuente
find -printfadicionales sobre las opciones-f2-lugar de-f2como una opcióncut? ¿Para qué es el segundo guión?man cut, imprime hasta el final si hay más de una columna.Usar en
ls -rt ~/Downloads/*lugar dels -rt ~/Downloads/. Enls -rt ~/Downloads/*el argumento, la cadena se expande primero por el shell (esto se denomina globbing de nombre de archivo ). Entonces obtienes una lista de rutas como argumentos para ells -rtcomando, que luego lo ordena de la manera que especifiques mediante las opciones dels. Por el contrario, el comandols -rt ~/Downloads/lee el contenido del directorio~/Downloads/. Esta es una lista de archivos sin la ruta del directorio.fuente
Con zsh:
La
(...)parte se llama calificadores de globbing , una de las características asesinas dezsh. Cada calificador (generalmente caracteres únicos) permite filtrar las entradas coincidentes en función de los atributos de los archivos (tipo, tamaño, tiempo ...), alterar el orden en que se expanden o modificar cómo se expanden.Arriba, tenemos:
.(punto): seleccione solo archivos normales (no directorios, enlaces simbólicos ...)om: O rden la lista por m tiempo ODIFICACIÓN.[1,2]: seleccione solo las dos primeras entradas.También tenga en cuenta que el comando fallará si no hay coincidencia (donde otros shells podrían mover accidentalmente el archivo / directorio incorrecto).
fuente