Cosa succede se lasciamo che find gestisca i nomi dei file?
find . -maxdepth 1 -iname '*syed*' -exec du -ch {} +
Che ne dici di questo?:
find . -maxdepth 1 -iname '*syed*' -print0 | xargs -0 du -ch
Spiegazione delle opzioni:
find
– Cosa stavi usando per trovare i file-print0
– Dividi ogni risultato con un carattere nullo, che è un carattere che non può comparire in un nome file
xargs
– Assembla gli argomenti di un comando reindirizzato dall'input standard (stdin)-0
– Ricevi ogni argomento diviso da un carattere nulldu -ch
– Il comando a cui vuoi passare gli argomenti del file
Per quanto riguarda il motivo per cui hai proposto sed
modo di scappare non funziona, il \
i caratteri che stai tentando di aggiungere vengono inseriti dopo il delimitatore di argomento della shell (" ") l'escape è già avvenuto. Ogni parola, delimitata da spazio, è già un argomento.
La mia soluzione con xargs
assicura che ogni argomento sia un percorso da find
, indipendentemente dagli spazi.