Linux para comando de estilo

Linux para comando de estilo

En Windows DOS, puedo usar el forcomando para aumentar enormemente la productividad y realizar millones de cosas a la vez. En PowerShell, es aún mejor. En Linux, tengo dificultades.

¿Cómo haría un lote de enlaces suaves a algunas carpetas en otra unidad?

Si ln -s 2013-02-*lo hace, hace algo totalmente loco y crea enlaces en una carpeta aleatoria.

Entonces estoy tratando de usar la sustitución de comandos, pero probando echoprimero, el problema es que

echo 'prepend/'`ls /drive/ -1`

Solo antepone la cadena preprend/ a la primera entrada. Esto me dice que aunque la sustitución de comandos funcionó con un comando de eliminación una vez, no funciona como pensaba (produciendo un solo comando para cada resultado de ls).

Volví a necesitar un bucle for. ¿Cómo hago para que "foreach $row in (ls -1) haga (algo)"?

Respuesta1

Comenzando en la carpeta donde desea los enlaces, esto funcionará:

ln -s sourcefolder/2013-02-* .

Por supuesto, existe un comando "para" perfectamente razonable:

for var in path/* ; do echo "prepend$var" ; done

Editar: el medio general de usar un programa para proporcionar una lista de argumentos a otro son las comillas invertidas: ``, por lo que puedes hacer:

for x in `ls -1` ; do program $x ; done

Sin embargo, ls tiene algo de magia para que no necesites poner -1 si lo estás usando como entrada para otro programa; y puede obtener una lista de archivos con un patrón * ("glob").

información relacionada