-4

В Windows DOS я могу использовать команду for чтобы значительно увеличить производительность и выполнять миллионы операций одновременно. В PowerShell это даже лучше. На Linux я борюсь.

Как мне сделать пакет софт-ссылок на некоторые папки на другом диске?

Если сделать ln -s 2013-02-* он делает что-то совершенно чокнутое и создает ссылки в случайной папке.

Поэтому я пытаюсь использовать подстановку команд, но сначала проверяю с помощью echo , проблема в том, что

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

Добавляет только prerend / string к первой записи. Это говорит мне о том, что, хотя я получил команду подстановки, работающую с командой удаления один раз, она не работает так, как я думал (создавая одну команду для каждого результата ls).

Я вернулся к необходимости цикла. Как мне сделать "foreach $ row в (ls -1) do (что-то)"?

1 ответ1

4

Начиная с папки, в которой вы хотите ссылки, это будет работать:

ln -s sourcefolder/2013-02-* .

Конечно, есть вполне разумная команда "для":

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

Редактировать: общий способ использования одной программы для предоставления списка аргументов другой - обратные черты: ``, так что вы можете сделать:

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

Тем не менее, в ls есть какая-то магия, поэтому вам не нужно ставить -1, если вы используете его как вход для другой программы; и вы можете просто получить список файлов с шаблоном * ("glob").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .