Linux para comando de estilo

Linux para comando de estilo

No Windows DOS, posso usar o forcomando para aumentar enormemente a produtividade e executar zilhões de coisas ao mesmo tempo. No PowerShell, é ainda melhor. No Linux, eu tenho dificuldade.

Como eu faria um lote de links virtuais para algumas pastas em outra unidade?

Se ln -s 2013-02-*isso acontecer, ele fará algo totalmente maluco e criará links em uma pasta aleatória.

Então, estou tentando usar a substituição de comando, mas testando echoprimeiro, o problema é que

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

Acrescenta apenas a string preprend/ à primeira entrada. Isso me diz que, embora eu tenha feito a substituição de comando funcionar com um comando remove uma vez, ela não funciona da maneira que pensei (produzindo um único comando para cada resultado ls).

Voltei a precisar de um loop for. Como faço "foreach $row in (ls -1) do (something)"?

Responder1

Começando na pasta onde você deseja os links, isso funcionará:

ln -s sourcefolder/2013-02-* .

É claro que existe um comando "for" perfeitamente razoável:

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

Editar: o meio geral de usar um programa para fornecer uma lista de argumentos para outro são crases: ``, então você pode fazer:

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

No entanto, ls tem alguma mágica para que você não precise colocar -1 se estiver usando-o como entrada para outro programa; e você pode simplesmente obter uma lista de arquivos com um padrão * ("glob").

informação relacionada