1 votos

Para eliminar todos los archivos en la carpeta de distancia el uno del OS X, Terminal

Me gustaría quitar todo el contenido de una carpeta, aparte de un archivo. El problema es que no se puede copiar el archivo a otra carpeta y, a continuación, volver a la primera carpeta, porque entonces la aplicación no acepta el archivo, por lo tanto, el archivo debe permanecer en la carpeta.

Existe un comando como el que he descrito?

4voto

Juliano Puntos 13802

Yo haría como este:

find . ! -name <filename> -delete

para este trabajo con carpetas, usted tiene que reemplazar el delete con un exec rm -r

find . ! -name <filename> -exec rm -rv {} \;

Esta cifra se desglosa en

find = buscar

. = en el directorio de trabajo actual, puede reemplazar . con una ruta de acceso, como ~/Documents/

! = no

-name = nombre

<filename> = archivo

-exec = ejecutar

rm -rv = verbose quitar

{} = resultados de la búsqueda

\; = cerrar la ejecución

Encontrar todos los archivos y carpetas en la carpeta de trabajo, que no tienen el nombre filename y, a continuación, ejecutar el comando remove en los resultados.

Usted debe hacer una marcha en seco sin la opción eliminar, en primer lugar:

find . ! -name <filename>

Este comando le da una lista de todos los archivos y carpetas en el directorio de trabajo que no tienen nombre, <filename>. Añadiendo -delete o -exec rm -rv {} \;, se elimina estos archivos y carpetas ( exec versión).


Usted también podría usar

rm -v [^filename]

para agregar carpetas -r

rm -rv [^filename]

De alguna manera me siento más cómodo el uso de la find opción. Principalmente porque se puede hacer una marcha en seco. De cualquier manera me gustaría empezar con un maniquí de carpeta y probar ambas opciones.

0voto

Garex Puntos 339

Para estar realmente seguro de esto, se puede utilizar la función buscar para crear una deleción shellscript con "rm" comandos:

find . ! -name "<filename>" -exec echo "rm -rf {}" >> /tmp/rm.sh \;

Eliminar cada línea en el shellscript /tmp/rm.sh que no te gusta, a continuación, ejecutar

bash /tmp/rm.sh

Pero cuidado, encontrar también se encuentra directorios y "rm -rf" sería entonces eliminar de forma recursiva así! Estrechar abajo su búsqueda, por decirle a encontrar el tipo de archivo a buscar:

find . ! -name "<filename>" -type <filetype> -exec echo "rm -rf {}" >> /tmp/rm.sh \;

Divertirse! :-)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X