Trova e rimuovi tutti i file vuoti


8

Come posso cercare tutti i file vuoti del sistema non root ed eliminarli?


Dire "Unix" è molto vago. Esistono molti sistemi operativi unix-like. È necessario specificare il sistema operativo attuale.
Wuffers,

Risposte:


15
find /path/to/mountpoint -empty -type f -delete

Se la tua ricerca non ha -deleteopzione, sostituiscila con-exec rm '{}' ';'

Se si desidera eliminare tutti i file vuoti tranne i file direttamente in /esecuzione:

find / -mindepth 2 -empty -type f -delete

Se si desidera eliminare tutti i file vuoti, ma saltare l'intera /rootdirectory eseguita

find / \( -path /root -prune \) -empty -type f -delete

voglio dire che / include molte directory tra loro c'è il root, quindi voglio eseguire un comando find su tutti i file vuoti su / tranne quelli sulla directory root?

Vuoi dire che vuoi saltare /rootdalla pulizia? In tal caso, ho modificato la mia risposta. In caso contrario, fai un esempio.
Piotr Findeisen,

3

find . -size 0 -print.

sostituisci -printcon -deletee .con la directory di cui hai bisogno, ma esegui con attenzione, eliminerà davvero tutti i file vuoti.


grazie, ma voglio rimuovere anche tutti i file vuoti della directory non root e non in una directory specifica?

come posso eseguire quel comando su tutti i file tranne quelli sulla directory principale?

@maalem: è possibile specificare più directory anziché .. Possono essere il risultato di un altro find, non sono sicuri di come specificare la profondità per trovare le directory solo nella directory principale (non hanno alcuna possibilità di testare ora, prova man find).

@maalem, @khachik, modifico la risposta per riflettere i tuoi commenti qui (se ho capito bene il tuo intento ...)
Piotr Findeisen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.