Linux Для команды стиля

Linux Для команды стиля

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

Как мне создать пакет мягких ссылок на некоторые папки на другом диске?

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

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

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

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

Мне снова нужен цикл for. Как сделать "foreach $row in (ls -1) do (something)"?

решение1

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

ln -s sourcefolder/2013-02-* .

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

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

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

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

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

Связанный контент