Je veux lier ( ln -s
) tous les fichiers qui se trouvent /mnt/usr/lib/
dans/usr/lib/
Il y a beaucoup de fichiers, comment le faire rapidement? :)
Je veux lier ( ln -s
) tous les fichiers qui se trouvent /mnt/usr/lib/
dans/usr/lib/
Il y a beaucoup de fichiers, comment le faire rapidement? :)
Réponses:
ln -s /mnt/usr/lib/* /usr/lib/
Je suppose que cela appartient au super-utilisateur, cependant.
GNU cp
a une option pour créer des liens symboliques au lieu de copier.
cp -rs /mnt/usr/lib /usr/
Notez qu'il s'agit d'une extension GNU introuvable dans POSIXcp
.
ln -s /mnt/usr/lib/* /usr/lib/
Les solutions publié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 souhaitez créer de manière récursive les répertoires et ne lier que les fichiers (de sorte que si vous créez un fichier dans un répertoire, il ne l'est vraiment /usr/lib
pas /mnt/usr/lib
), vous pouvez le faire:
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
./
et ../
):ln -s /mnt/usr/lib/.!(|.)* /usr/lib