Solo estaba tratando de enumerar todos los directorios y archivos en el directorio actual y también escribir si son archivos o directorios con el siguiente comando:
find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \;
Sé que es un comando tonto, puedo usar otras cosas como -type fo -type d, pero quiero saber por qué ese código no funcionó como esperaba. Simplemente imprime el directorio a todos ellos. Por ejemplo, mientras que la salida de findes:
.
./dir
./dir/file
La salida de mi código es:
. : directory
./dir : directory
./dir/file : directory
Y salida de
echo `echo dir/file : ;if [ -f dir/file ]; then echo file; else echo directory;fi`
es
dir/file : file
Estoy trabajando Ubuntu 14.10y usandofind (GNU findutils) 4.4.2
"{}". ¿Por qué usas echodos veces?
echo "{}" : ;if [ -f "{}" ]; then echo file; else echo directory;fi\;
find -exec bash -c 'echo -n "{} : ";if [ -f "{}" ]; then echo file; else echo directory;fi' \;