Ik wil ( ln -s
) alle bestanden in /mnt/usr/lib/
koppelen aan /usr/lib/
Er zijn veel bestanden, hoe kan dit snel worden gedaan? 🙂
Antwoord 1, autoriteit 100%
ln -s /mnt/usr/lib/* /usr/lib/
Ik denk dat dit echter van superuser is.
Antwoord 2, autoriteit 45%
GNU cp
heeft een optie om symbolische links te maken in plaats van te kopiëren.
cp -rs /mnt/usr/lib /usr/
Let op: dit is een GNU-extensie die niet gevonden wordt in POSIX cp
.
Antwoord 3, autoriteit 10%
ln -s /mnt/usr/lib/* /usr/lib/
Antwoord 4, autoriteit 9%
De geposte oplossingen zullen geen verborgen bestanden koppelen. Probeer dit om ze op te nemen:
cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Als je toevallig de mappen recursief wilt maken en alleen bestanden wilt koppelen (zodat als je een bestand in een map maakt, het echt in /usr/lib
staat en niet in /mnt/usr/lib
), zou je dit kunnen doen:
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