Это не включает скрытые файлы, а связывает целые каталоги. Если что-то из этого не то, что вам нужно, см. Мой ответ. В противном случае это кратчайший путь.
Cascabel
Ты прав. Но библиотеки обычно не прячутся. В любом случае используются точечные файлы, ваше решение будет более удобным.
1
будет ли он постоянно указывать на другую папку?
nmkyuppie
@YuPPie Я думаю, он просто создает жесткую ссылку на каждый файл в каталоге. (это то, что я хотел сегодня, поэтому +1: D)
Опубликованные решения не будут связывать какие-либо скрытые файлы. Чтобы включить их, попробуйте следующее:
cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Если вам нужно рекурсивно создавать каталоги и только связывать файлы (так что если вы создаете файл в каталоге, его на самом деле /usr/libнет /mnt/usr/lib), вы можете сделать это:
cd /usr/lib
find /mnt/usr/lib -mindepth 1 -depth -type d -printf "%P\n" | while read dir; do mkdir -p "$dir"; done
find /mnt/usr/lib -type f -printf "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Я считаю, что это также должно работать как способ подстановки в скрытых файлах, если в bash включена расширенная глобализация. Он соответствует всему, что начинается с точки, за которой следует что-то, кроме ничего или другая точка (т.е. исключает ./и ../):ln -s /mnt/usr/lib/.!(|.)* /usr/lib
Ответы:
Я думаю, это принадлежит суперпользователю.
источник
GNU
cp
имеет возможность создавать символические ссылки вместо копирования.Обратите внимание, что это расширение GNU, которого нет в POSIX
cp
.источник
источник
Опубликованные решения не будут связывать какие-либо скрытые файлы. Чтобы включить их, попробуйте следующее:
Если вам нужно рекурсивно создавать каталоги и только связывать файлы (так что если вы создаете файл в каталоге, его на самом деле
/usr/lib
нет/mnt/usr/lib
), вы можете сделать это:источник
./
и../
):ln -s /mnt/usr/lib/.!(|.)* /usr/lib