¿Cómo eliminar el carácter de espacio (espacios en blanco) desde el final de los nombres de files y carpetas?

El problema con mac es que permite caracteres de espacio al final del file o carpeta. Si este file o carpeta con carácter de espacio al final se copy a FTP utilizando Filezilla o Dropbox, mac crea carpetas con "Foldername_WhiteSpaceConflict". Para deshacerse de este problema, se deben renombrar todos los files y carpetas con carácter de espacio sin carácter de espacio. ¿Qué solución podría ser la mejor usando terminal o algún progtwig?

  • ¿Hay alguna manera de preservar el historial de tabs del terminal en los reinicios de la computadora?
  • Control de luz retroiluminada por keyboard desde línea de command
  • OSX: window de Affix para no moverse en el interruptor de espacios
  • ¿Cómo puedo sincronizar la vista de shell y la vista de Finder de un directory?
  • ¿Cómo evitar que cambie la configuration de ocultación automática del dock?
  • ¿Cómo mover una window a otro espacio sin usar el mouse?
  • Problemas de navigation en Internet cuando la Mac está vinculada a un server de Microsoft con Active Directory
  • Suprimido / usr / local / bin y / usr / bin en OS X
  • ¿Cómo puedo hacer una copy de un DVD hecho con imovie?
  • AppleScript: ¿Cómo get time sin segundos? Alternativamente, ¿cómo eliminar el text en medio de la cadena?
  • No se puede convertir dmg a dmg encriptado en Yosemite
  • La barra táctil ya no permite cambiar entre los controles multimedia en High Sierra?
  • 4 Solutions collect form web for “¿Cómo eliminar el carácter de espacio (espacios en blanco) desde el final de los nombres de files y carpetas?”

    Aquí está la secuencia de commands para search y eliminar el espacio final de files y directorys:

    #!/bin/bash IFS=$'\n' for file in $(find -d . -name "* ") do target_name=$(echo "$file" | sed 's/[ \t]*$//') if [ "$file" != "$target_name" ]; then if [ -e "$target_name" ]; then echo "WARNING: $target_name already exists, file not renamed" else echo "Move $file to $target_name" mv "$file" "$target_name" fi fi done 

    Existe una aplicación para Mac llamada ' Name Mangler ', que hará todo lo que pueda desear hacer con un nombre de file / carpeta, e incluso puede crear su propio código y usarlo en la aplicación. Hay una versión de testing gratuita que le ofrece 4 bashs ilimitados, y puede revertir los nombres si comete un error.

    Algo como esto debería funcionar:

     ruby -e "Dir.glob('* ').each { |name| File.rename name, name.chomp(' ') }" 

    Esto eliminará los espacios finales de cada file / directory en la pwd.

    Tuve que arreglar el script un poco más. Para files o carpetas que terminan en la letra 't', también eliminaría esa letra. Y la llamada para verificar si el file existe no funcionaba correctamente, por lo que cambió "target_name" a $ target_name y funciona ahora.

     #!/bin/bash IFS=$'\n' for file in $(find -d . -name "* ") do target_name=$(echo "$file" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') if [ "$file" != "$target_name" ]; then if [ -e $target_name ]; then echo "WARNING: $target_name already exists, file not renamed" else echo "Move $file to $target_name" mv "$file" "$target_name" fi fi done 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).