GNU/Linux >> Tutoriels Linux >  >> Linux

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

Sous Linux (et sur la plupart des autres systèmes, bien que POSIX ne vous donne pas cette garantie à moins que le déplacement ne se fasse entre les systèmes de fichiers), cela aurait mis à jour leur ctime, donc en supposant qu'aucun des autres dans /usr/bin ont été touchés au cours des dernières 24 heures, vous devriez pouvoir les faire reculer avec :

find /usr/bin/. ! -name . -prune -ctime -1 -exec sh -c '
   echo mv -i "[email protected]" /bin' sh {} +

Supprimer le echo si cela semble correct. Notez que vous ne pourrez pas récupérer les fichiers qui existaient sous le même nom dans /bin et /usr/bin (ceux d'origine en /usr/bin aurait été perdu)

Une mise en garde potentielle :si certains fichiers étaient liés en dur dans les deux /bin et /usr/bin , tous les liens physiques en /usr/bin serait déplacé vers /bin .

Maintenant, vous pensez peut-être que depuis /bin et /usr/bin sont dans le $PATH par défaut , et /bin est disponible sur /boot au moins avant /usr est monté, peu importe si les exécutables sont en /bin au lieu de /usr/bin .

Mais ce serait oublier que de nombreuses commandes codent en dur les chemins des exécutables et s'attendent à ce qu'ils soient dans un cas spécifique. Un cas courant est la frange. Tous les scripts qui ont :

#! /usr/bin/env bash

ne fonctionnera pas après avoir fait mv /usr/bin/env /bin/env . À cet égard, avoir les commandes aux deux emplacements est plus sûr car cela ne cassera pas ces scripts.


Mon Ubuntu est-il actuellement en panne ?

Oui, votre Ubuntu est cassé

Vous avez gâché quelque chose d'important pour la gestion des packages.

Donc en pratique, sauvegardez vos données importantes (au moins /etc et /home ), peut-être aussi la liste des packages installés, par ex. sortie de dpkg -l , et réinstallez Ubuntu.

Je pourrais juste admettre avoir foiré la réinstallation de toute la partition Linux.

C'est probablement ce qui consommerait moins de votre temps. Conserver votre système actuel à l'aide d'autres réponses, c'est le maintenir dans un état très désordonné (ce qui vous donnerait des maux de tête à l'avenir).

Puisque vous reformatez votre disque, pensez à mettre /home dans une partition séparée (afin que de telles erreurs futures ne perdent pas vos données). Avant de faire cela, imprimez sur papier la sortie de df -h et df -hi et fdisk -l (ils donnent des informations sur l'espace disque -à la fois utilisé et disponible- ...). Soyez sage d'avoir une partition système suffisamment grande (le système de fichiers racine); si vous pouvez vous le permettre, 100 Go sont plus que suffisants.

J'étais censé déplacer le contenu du dossier bin du logiciel vers /usr/bin

(terminologie :Unix a des répertoires, pas des "dossiers").

Cela (bouger à /usr/bin/ ) est très mal. Améliorez votre $PATH (de préférence) ou ajoutez au plus des liens symboliques en /usr/bin/ et de préférence déplacer (ou ajouter des liens symboliques) les exécutables vers /usr/local/bin/ .

L'approche sage est de ne jamais changer /usr/bin/ , /bin , /sbin , /usr/sbin/ en dehors des outils de gestion de packages (par exemple dpkg , apt-get , aptitude , etc...). Lisez le FHS.


  1. Votre installation devrait être généralement OK ; il ne devrait pas y avoir de fichiers différents avec le même nom dans /usr et /usr/bin (ce qui répond à votre 2.1), donc avoir tous les fichiers dans les deux /bin et /usr/bin ne cassera rien (jusqu'à ce que vous mettiez à niveau les packages). Le seul problème que vous pourriez avoir maintenant est la rupture des liens symboliques, si vous écrasez un binaire avec un lien symbolique vers celui-ci. Pour résoudre ce problème, recherchez les liens symboliques brisés :

    find -L /bin /usr/bin -type l -ls
    

    et réinstallez tous les packages correspondant aux fichiers répertoriés (par exemple, si /usr/bin/zsh apparaît comme cassé, dpkg -S /bin/zsh /usr/bin/zsh vous dira de quel paquet provient le fichier ; réinstallez-le avec apt --reinstall install zsh ).

  2. Vous pouvez afficher et trier par ctime pour voir les fichiers qui ont été récemment modifiés (ce qui inclura les fichiers que vous avez déplacés) :

    ls -ltc /bin
    
  3. La meilleure approche pour annuler ce que vous avez fait est d'utiliser le cruft empaqueter et supprimer les fichiers qu'il trouve dans /bin ou /usr/bin qui ne proviennent pas d'un colis :

    sudo apt install cruft
    sudo cruft -d "/ /usr"
    

    sauf si les fichiers sont des liens symboliques vers des fichiers en /etc/alternatives (auquel cas vous devez les laisser tranquilles).


Linux
  1. autorisation refusée pour composer dans /usr/local/bin/

  2. cmake --version pointe vers /usr/bin/cmake tandis que cmake pointe vers /usr/local/bin

  3. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  4. Quelle est la signification de /usr/sbin, /usr/local/sbin et /usr/local/bin ?

  5. Quand dois-je utiliser #!/bin/bash et quand #!/bin/sh ?

/usr/bin Vs /usr/local/bin Sous Linux ?

Linux – /sbin/init n'existe pas ?

Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

Quelle est la différence entre #!/usr/bin/env bash et #!/usr/bin/bash ?

Différence entre /bin et /usr/bin

Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?