GNU/Linux >> Linux Esercitazione >  >> Linux

comando find nello script bash risultante in Nessun errore di file o directory solo per le directory?

tl;dr - Pass -prune se stai eliminando le directory usando find .

Per chiunque altro si imbatta in questa domanda. Esecuzione di un esempio come questo

find /media/disk3 -type d -name .AppleDouble -exec rm -rf {} \;

genera un errore come

rm: cannot remove 'non_existent_directory': No such file or directory

Quando trovi ed elimini le directory con find, incontrerai spesso questo errore perché find memorizza la directory per elaborare le sottodirectory, quindi la elimina con exec , quindi tenta di attraversare le sottodirectory che non esistono più.

Puoi superare -maxdepth 0 o -prune per prevenire questo problema. In questo modo:

find /media/disk3 -type d -name .AppleDouble -prune -exec rm -rf {} \;

Ora cancella le directory senza errori. Evviva! :)


Non è necessario sfuggire a DOT in shell glob in quanto non si tratta di espressioni regolari. Quindi usa .AppleDouble invece di \.AppleDouble :

find $DIRTY_DIR -name .AppleDouble -exec rm -rf '{}' \;

PS: Non vedo da nessuna parte $COUNTER essere incrementato nel tuo script.


Linux
  1. Errore:xenstore-read:xs_open:nessun file o directory di questo tipo su DomU [Risolto]

  2. Impossibile eseguire nessun file o directory di questo tipo [fissare]

  3. Correzione dell'errore fatale openssl err.h – Nessun file o directory di questo tipo [OpenCA]

  4. Come far funzionare il comando alias nello script bash o nel file bashrc

  5. Nessun errore di file o directory durante l'esecuzione di un file binario

Come trovare un file in Linux in tutte le directory in modo ricorsivo

errore fatale openssl/evp.h:nessun file o directory di questo tipo:[Risolto]

Elimina file e directory in base ai loro nomi. Nessun file o directory con questo nome?

Bash:Nessun file o directory di questo tipo?

Il comando conda richiederà l'errore:Bad Interpreter:No such file or directory

Come grep per unicode � in uno script bash