2010-08-25 9 views
6

EDIT 1Usando lsof para obtener una lista de nombres de archivo

Tengo problemas utilizando los argumentos dados. Tal vez es la forma en que estoy pasando mis argumentos a través de NSTask? ¿Alguna sugerencia sobre cómo puedo hacer esto?

NSTask *file_Task = [NSTask new]; 
[file_Task setLaunchPath:@"/usr/sbin/lsof"]; 
[file_Task setArguments:[NSArray arrayWithObjects:@"+p", the_Pid, nil]]; 

buenas tardes compañeros codificadores ....

estoy usando el siguiente comando:

lsof +p 13812 

para obtener la lista de archivos accedidos a través de un proceso. Lo que pasa es que me está dando mucha información adicional que no quiero, como TYPE, DEVICE, etc.

¿Hay algún argumento que pueda agregar al comando anterior para que obtenga SOLO el NOMBRE?

Gracias, gracias ¡gracias! :)

Eric

+0

¿También 'solo' quiere los archivos que el proceso ha abierto? 'lsof' devolverá una entrada para todos los descriptores de archivos abiertos (archivos, sockets, ttys, etc.) así como para el directorio de trabajo actual, las bibliotecas compartidas. – Beano

Respuesta

4

que puede utilizar:

lsof -Fn +p 12345 

Esta es la salida de una lista de líneas, siendo la primera p seguido por el ID del proceso, y todas las siguientes líneas formadas por n seguidos por el nombre del archivo.

Si desea rápidamente preproceso esto, se puede hacer algo similar a lo siguiente:

lsof -Fn +p 12345 | tail -n +2 | cut -c2- 

Véase el lsof man page para obtener más información, específicamente bajo el título OUTPUT FOR OTHER PROGRAMS.

3

intento:

 
lsof | tr -s ' ' | cut -d' ' -f9 
+0

Esto también imprimirá el encabezado, desafortunadamente. – Dave

0

lsof + p 9174 | awk '{print $ 9}'

+2

Considerar espacios en nombres de archivo. –

1

Listing la canción que se está reproduciendo (archivos NFS, se accede por mpd usuario):

$ sudo lsof -N -a -u mpd -Fn | 
    sed '/n/!d; s/^n//' 
/R/audio/[...] Jay-Jay Johanson , So Tell The Girls That I Am Back.mp3 

La parte SED borra todas las líneas que no empiezan con n y elimina n en la salida final.

Cuestiones relacionadas