La mejor manera de enumerar solo los archivos que poseo

La mejor manera de enumerar solo los archivos que poseo

¿Cuál sería el mejor comando de shell "de una sola línea" que podría usar para enumerar todos los archivos en un directorio, mostrando solo aquellos que poseo?

Respuesta1

Una breve frase sería:

find . -maxdepth 1 -user $USER

Si está buscando en el directorio actual, puede omitir el archivo .. Si no sabes si $USERestá disponible, puedes reemplazarlo con $LOGNAMEo $(whoami).

Agregar -lspara mostrar detalles del archivo, por ejemplo:

find / -maxdepth 1 -user root -ls

Si desea proporcionar banderas personalizadas, lspuede utilizarlas a través de -exec:

find / -maxdepth 1 -user root -exec ls -ld {} +

(En ese caso, se requiere la -dbandera lspara enumerar los directorios como ellos mismos y no como su contenido).

Respuesta2

Utilice el siguiente comando

[username@localhost~]$ find / -user username -exec ls -l {} \; 2>/dev/null

busque todos los archivos en todo el sistema propiedad del nombre de usuario. Si lo encuentra en un directorio específico, simplemente reemplace la ubicación / .

[username@localhost~]$ find /path/of/direcotry -user username -exec ls -l {} \; 2>/dev/null

NB:2>/dev/null anula la salida de error.

Respuesta3

Como no especificaste el formato de salida, también puedes hacer esto con ls y grep:

ls -lG | grep username

Primero usamos ls con el parámetro -l para obtener el listado que incluye el nombre de usuario y el nombre del grupo.

Luego eliminamos el nombre del grupo del resultado con el parámetro -G.

Después de eso, simplemente lo canalizamos a grep y obtenemos todos los resultados con el nombre de usuario deseado.

EDITAR: Como se señaló en los comentarios, esto esno es una caja fuerteo una solución a prueba de balas; sin embargo, dependiendo de las circunstancias, puede ser una solución rápida y sucia. Interactivamente, puede ser aceptable, ¡pero no debes usarlo en ningún script!

Respuesta4

Con zsh, puedes hacerlo usando elcalificador globalu:

uidentificación

archivos propiedad de ID de usuarioidentificaciónsi ese es un numero. De lo contrario,identificaciónespecifica un nombre de usuario: el carácter después de ' u' se tomará como separador y la cadena entre este y el siguiente separador coincidente se tomará como nombre de usuario. Los separadores iniciales ' [', ' {' y ' <' coinciden con los separadores finales ' ]', ' }' y ' >', respectivamente; cualquier otro carácter coincide con él mismo. Los archivos seleccionados son los propiedad de este usuario. Por ejemplo, ' u:foo:' o ' u[foo]' selecciona archivos propiedad del usuario ' foo'.

entonces, por ejemplo, con el usuarioID

print -rl ./*(u1027)

o con nombre de usuario

print -rl ./*(u_yourusernamegoeshere_)

Como de costumbre, puede combinarlo con otros calificadores, modificadores, etc., por ejemplo, para enumerar solo archivos normales, ocultos o no, propiedad del usuario UID 1027y ordenados por su mtime:

print -rl ./*(.Domu1027)

información relacionada