Parece que está buscando de forma recursiva toda la jerarquía del sistema de archivos. Eso no funcionará como se espera en la mayoría de los sistemas.
En Linux al menos /proc
y /sys
son sistemas de archivos virtuales - no corresponden a un archivo real en el disco. Los archivos especiales en /dev
tampoco son archivos reales: corresponden a algunos de los dispositivos en su sistema, como discos duros, dispositivos de entrada e.t.c. Modificar -y, ocasionalmente, incluso leer- archivos bajo cualquiera de estos directorios nunca debería suceder de manera descontrolada, ya que puede bloquear el kernel, arruinar sus sistemas de archivos e incluso causar daños permanentes a su hardware.
dado que está utilizando find
para realizar la búsqueda, es necesario restringir el alcance de su búsqueda:
uso explícito negado -path
opciones:
find/-maxdepth 2 -type f ! -path '/proc/*' ! -path '/sys/*'
utilizar la opción -prune
:
find/-maxdepth 2 -path '/proc' -prune -o -path '/sys' -prune -o -type f -print
Utilice la opción -xdev
para evitar descender a otros sistemas de ficheros por completo:
find/-maxdepth 2 -xdev -type f
se puede utilizar como muchos -path
y/o -prune
opciones como sea necesario para ajustar la salida de find
. Sin embargo, recomiendo que inspeccione su salida antes de pasarla a cualquiera de las etapas posteriores de la tubería.
EDIT:
Éstos son algunos ejemplos de los daños causados al acceder a ciertos archivos de una manera incontrolada - por lo general como root
:
kernels antiguos used to crash si /proc/kcore
se leyó como root
. Creo que esto ya no sucede, pero me he encontrado con este puesto /proc/kcore
se introdujo en la serie 2.4.x del kernel y occasionally pops up again, así que estoy de humor para realmente probarlo ...
Lectura de un dispositivo de bloques a través de su nodo de dispositivo en /dev/
puede ralentizar severamente cualquier otra operación en ese dispositivo, ya que evita el VFS y varios cachés.Imagine, por ejemplo, leer una partición de 6TB RAID-5 directamente, mientras que otros procesos intentan usarla correctamente a través del sistema de archivos instalado. El uso de -type f
en find
debe evitar que esto suceda.
Como mencionó la modificación, puede bloquear fácilmente un dispositivo incrustado al dañar su firmware, al que se puede acceder a través del /dev/mtd*
. En algunos casos es imposible recuperarse de dicha corrupción sin algunas medidas bastante extremas.
Así que use 'find $ whatever! -wholename "/ proc/sysrq-trigger" '? –
* ¿Por qué * estás leyendo archivos recursivamente en '/ proc' en absoluto? Es posible que podamos ayudarle más si nos dice lo que está tratando de hacer en términos más amplios. – thkala
@thkala tratando de buscar archivos con una cierta cadena y luego eliminar todo el contenido del archivo. – user1166981