Je veux lier (ln -s) tous les fichiers qui se trouvent dans/mnt/usr/lib/dans/usr/lib /
Il y a beaucoup de fichiers, comment faire vite? :)
ln -s /mnt/usr/lib/* /usr/lib/
Je suppose que cela appartient au superutilisateur, cependant.
GNU cp
a une option pour créer des liens symboliques au lieu de les copier.
cp -rs /mnt/usr/lib /usr/
Notez que ceci est une GNU introuvable dans POSIX cp
.
Les solutions postées ne lieront aucun fichier caché. Pour les inclure, essayez ceci:
cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Si vous voulez créer récursivement les répertoires et ne lier que les fichiers (de sorte que si vous créez un fichier dans un répertoire, il se trouve réellement dans /usr/lib
ne pas /mnt/usr/lib
), vous pourriez faire ceci:
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
ln -s /mnt/usr/lib/* /usr/lib/