Мне просто интересно, можно ли создать огромное количество символических ссылок с помощью цикла for?
Например, у меня в каталоге / tmp много каталогов (я знаю, что не рекомендуется), и я не хочу их перемещать.
Вместо этого я просто хочу, чтобы они были в моем корневом каталоге, используя символические ссылки.
Вот что я сделал, но, к сожалению, совсем не работает:
for directories in /tmp/; do ln -s /tmp/$directories /$directories; done
Так что, если бы кто-нибудь мог мне намекнуть, было бы замечательно ;-) Спасибо.
Попробуй это.
cd /tmp && for i in `ls `; do ln -s $i /$i; done
Хорошо, работа выполнена, спасибо всем за подсказки.
Вот мое простое решение:
for i in $(ls); do dir=$i; ln -s /tmp/$dir /$dir; done
Et voila: D
Еще раз спасибо сообществу StackExchange ;-)
Следующий блок создаст ссылки, как вы объяснили.
Если вы хотите отфильтровать некоторые имена из / tmp; использовать -name
переключатель для поиска.
Если вам нужна большая глубина символьной ссылки, настройте / удалите -maxdepth
переключатель
cd /
find /tmp/ -maxdepth 1 -type d -exec ln -s {} \;
Чтобы сделать эти ссылки, вам нужны разрешения на запись в /
for directories in `find /tmp/ -type d`
do
ln -s /tmp/$directories /$directories;
done
У вас должны быть права на запись в каталог, в котором вы хотите создать символическую ссылку. Имейте в виду, что / tmp (обычно) очищается при загрузке и может периодически очищаться в течение всего времени безотказной работы машины, поэтому полагаться на вещи, постоянно находящиеся в / tmp, рано или поздно вас укусит.