Dado que los espacios se utilizan para los argumentos de línea de comandos separados, tienen que ser escapado de la cáscara. Esto se puede hacer ya sea con una barra invertida() o comillas:
"/path/with/spaces in it/to/a/file"
somecommand -spaced\ option
somecommand "-spaced option"
somecommand '-spaced option'
Esto es suponiendo que se está ejecutando desde una shell. Si está escribiendo código, generalmente puede pasar los argumentos directamente, evitando el problema:
Ejemplo en perl. En lugar de hacer:
print("code sample");
sistema ("alguna opción de espacio de comandos");
que puede hacer
print("code sample");
del sistema ("algúncomando", "opción -spaced");
Dado que cuando pasa el sistema() llama a una lista, no rompe argumentos en espacios como lo hace con una sola llamada de argumento.
¿Puedes dar un ejemplo de lo que quieres decir con "reconocer una ruta desde los argumentos de la línea de comando"? Puede valer la pena comenzar una nueva pregunta ya que todos respondieron la primera parte. – rjmunro