Sembra che si stia ricorsivamente cercando l'intera gerarchia del filesystem. Ciò non funzionerà come previsto sulla maggior parte dei sistemi.
Su Linux almeno /proc
e /sys
sono file system virtuali - non corrispondono a un file reale su disco. Anche i file speciali in /dev
non sono file effettivi: corrispondono ad alcuni dispositivi sul sistema, ad esempio dischi rigidi, dispositivi di input e.t.c. Modificare - e, occasionalmente, anche leggere - i file sotto una di queste directory non dovrebbero mai accadere in modo incontrollato, dal momento che puoi mandare in crash il kernel, rovinare il tuo filesystem e persino causare danni permanenti all'hardware.
Dal momento che si sta utilizzando find
per eseguire la ricerca, è necessario limitare l'ambito della sua ricerca:
uso esplicito negato -path
opzioni:
find/-maxdepth 2 -type f ! -path '/proc/*' ! -path '/sys/*'
utilizzare l'opzione -prune
:
find/-maxdepth 2 -path '/proc' -prune -o -path '/sys' -prune -o -type f -print
Utilizzare l'opzione -xdev
per evitare di scendere ad altri filesystem completamente:
find/-maxdepth 2 -xdev -type f
è possibile utilizzare come molti -path
e/o -prune
opzioni di cui hai bisogno per mettere a punto l'uscita di find
. Raccomando, tuttavia, di ispezionare la sua uscita prima di passarla a uno degli stadi successivi della pipeline.
EDIT:
Ecco alcuni esempi di danni causati durante l'accesso di alcuni file in maniera incontrollata - di solito come root
:
più vecchio kernel used to crash se /proc/kcore
è stato letto come root
. Credo che questo non accade più, ma ho incontrato questo dato /proc/kcore
è stato introdotto nella serie 2.4.x del kernel e occasionally pops up again, quindi sono in vena di provare in realtà ...
La lettura di un dispositivo a blocchi tramite il suo nodo di dispositivo in /dev/
può rallentare gravemente qualsiasi altra operazione su quel dispositivo, poiché ignora VFS e varie cache.Immaginate, per esempio, di leggere direttamente una parata RAID-5 da 6 TB, mentre altri processi tentano di usarlo correttamente tramite il filesystem installato. L'utilizzo di -type f
in find
dovrebbe impedire che ciò accada.
Dato che hai menzionato la modifica, potresti facilmente brickare un dispositivo incorporato danneggiando il suo firmware, che è accessibile tramite /dev/mtd*
. In alcuni casi è impossibile recuperare da tale corruzione senza misure piuttosto estreme.
Quindi usare 'trova $ qualunque! -wholename "/ proc/sysrq-trigger" '? –
* Perché * stai leggendo i file in modo ricorsivo in '/ proc'? Potremmo essere in grado di aiutarti di più se ci dicessi cosa stai cercando di fare in termini più ampi. – thkala
@thkala prova a cercare i file con una determinata stringa, quindi elimina l'intero contenuto del file. – user1166981