find . -type f -print
stampe fuoriCome rimuovere il codice "./" in unix "find"?
./file1
./file2
./file3
Un modo per rendere la stampa
file1
file2
file3
?
find . -type f -print
stampe fuoriCome rimuovere il codice "./" in unix "find"?
./file1
./file2
./file3
Un modo per rendere la stampa
file1
file2
file3
?
Se sono solo nella directory corrente
find * -type f -print
E 'questo che vuoi?
Usa sed
find . | sed "s|^\./||"
Questa è la mia soluzione preferita; è compatibile con POSIX (funziona praticamente ovunque, anche con sistemi embedded), molto breve, e difficilmente porta a comportamenti imprevisti. Questa dovrebbe essere la risposta accettata. –
Come sarebbe combinato con 'find -exec'? – PaulrBear
'find -exec sh -c" echo {} | sed 's |^\ ./ ||' "\;' o 'find -exec sh -c" sed 's |^\ ./ | |' <<< '{}' "\;' – xenithorb
può essere più breve
find * -type f
Meglio con '2>/dev/null' per ignorare l'errore segnalato quando il comando viene eseguito in una directory vuota. – neevek
Trova solo i file regolari nella directory corrente, e stamparle senza "./" prefisso:
find -type f -printf '%P\n'
Da man find, descrizione del formato -printf:
% P Nome file con il nome dell'argomento della riga di comando in base al quale è stato rimosso.
+1 Buona soluzione se la tua versione di 'find' supporta' -printf' (non tutti lo fanno). –
Come ha detto Todd, ma più precisamente: non è POSIX 7. –
Supportato o meno, è sicuramente più sicuro della risposta accettata. –
Sapevo che si poteva fare con sed, ma questa è una soluzione molto migliore. Grazie! – breadjesus
nice, mai pensato a quello –
Mancheranno file con nomi che iniziano con un punto. – Sean