2009-04-28 9 views
12

Necesito registrar archivos desde un directorio de Unix que solo pertenece a mi id. Probé la construcción de este comando, pero fue en vano:Eliminando solo mis archivos en Unix

ls -la | grep 'myid' | awk ' { print $9 } ' | rm 

Mi resultado: Uso: rm [-firRe] [-] archivo ...

Respuesta

13

Estabas muy cerca. Proveedores:

rm `ls -la | grep 'myid' | awk ' { print $9 } '` 

Tenga en cuenta que estos son invertidas, y no comillas simples que rodean los tres primeros segmentos de su original del gasoducto. También para mí, la columna del nombre del archivo era $ 8, pero si $ 9 es la columna correcta para usted, entonces debería hacerlo.

+0

Muchas gracias por la entrada. Funcionó muy bien. Es menos tipeo que las otras respuestas, pero también aprecio esos. –

+0

esto falla para mí porque mi indicación es de color: rm: no se puede eliminar '\ 033 [0m.X1-lock \ 033 [0m ': No existe tal archivo o directorio - el \ 033 [0m viene de una variable de entorno (rápido) – liang

14
find . -user myuser -print0 |xargs -0 rm 

poner su propio identificador de usuario (o tal vez número de usuario) en "myuser".

4

intento con find donde se puede buscar archivos que pertenecen a un usuario y luego borrarlos:

find . -user *username* -delete 

Más información: man find

3

rm no acepta una lista de archivos que desea eliminar en la entrada estándar (que es lo que está haciendo haciéndolo pasar a través de la tubería.

Prueba este

find . -type f -user username -exec rm -f {} \; 
12

rm no lee de stdin.

hallazgo -user $ (whoami) -delete

favor siempre prueba sin el eliminar en primer lugar.

+1

Nota, agregue el tipo f si solo desea eliminar archivos. –

+1

También posiblemente un -maxpunto 1 para trabajar solo en el directorio actual. – millimoose

+1

Esto es lo más conciso, pero tenga en cuenta que debe colocar el directorio en el comando antes de la opción -user, p. Ej. 'encontrar . -user $ (whoami) -delete ' – Jay

1

Usted podría utilizar hallazgo:

find . -maxdepth 1 -type f -user myid -print0 | xargs -0 rm -f 

La caída de la -maxdepth 1 si desea que le permite manejar los subdirectorios también.

1

Eliminar archivos de user_name de la carpeta /tmp (se puede sustituir esto con su carpeta) más de 60 días - que ca utilizar cualquier fecha aquí, pero asegúrese de mantener pruebas en un archivo deleted.txt en user_name carpeta de inicio:

find /tmp -user user_name -mtime +60 -exec rm -rfv {} \; >> /home/user_name/deleted.txt 
Cuestiones relacionadas