J'utilise archlinux et j'essayais de supprimer le fichier core dumps pour économiser de l'espace sur la partition racine.
J'ai bêtement couru ce que j'ai trouvé sur Internet sans vraiment le comprendre:
sudo find / -xdev -name core -ls -o -path "/lib*" -prune -exec rm {} \;
de ce que je comprends jusqu'à présent. Il supprimera tout ce qui se trouve sous la racine '/' et porte exactement le nom 'core', à l'exception de '/ lib'
et ceci est la sortie que j'ai
399883 4 drwxr-xr-x 2 root root 4096 Sep 21 18:33 /usr/share/lightdm-webkit/themes/litarvan/packages/$sdk/lib/core
401640 4 drwxr-xr-x 11 root root 4096 Sep 21 18:33 /usr/share/lightdm-webkit/themes/litarvan/packages/angular2/src/core
992335 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/log/core
999740 4 drwxr-xr-x 7 root root 4096 Dec 5 14:36 /usr/include/boost/spirit/home/classic/core
999834 4 drwxr-xr-x 3 root root 4096 Dec 5 14:36 /usr/include/boost/spirit/home/x3/core
999557 4 drwxr-xr-x 3 root root 4096 Dec 5 14:36 /usr/include/boost/phoenix/core
992045 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/hana/fwd/core
992030 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/hana/core
991963 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/geometry/multi/core
991928 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/geometry/core
991626 4 drwxr-xr-x 4 root root 4096 Dec 5 14:36 /usr/include/boost/beast/experimental/core
991622 4 drwxr-xr-x 4 root root 4096 Dec 5 14:36 /usr/include/boost/beast/core
991735 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/contract/detail/inlined/core
991731 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/contract/core
1000174 4 drwxr-xr-x 3 root root 4096 Dec 5 14:36 /usr/include/boost/xpressive/detail/core
991744 4 drwxr-xr-x 2 root root 4096 Dec 5 14:36 /usr/include/boost/core
1062959 4 drwxr-xr-x 3 root root 4096 Dec 6 01:31 /usr/lib/python3.7/site-packages/ranger/core
1088768 4 drwxr-xr-x 3 root root 4096 Oct 22 21:00 /usr/lib/python3.7/site-packages/core
450582 4 drwxr-xr-x 6 root root 4096 Dec 6 01:07 /usr/lib/ruby/gems/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core
1008621 4 drwxr-xr-x 4 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/sound/core
1008442 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/usb/core
1007844 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/infiniband/core
1008479 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/video/fbdev/core
1007786 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/gpu/drm/tinydrm/core
1008033 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/mmc/core
1008005 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/memstick/core
1008133 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/drivers/net/ethernet/mellanox/mlx5/core
1008569 4 drwxr-xr-x 2 root root 4096 Dec 20 14:03 /usr/lib/modules/4.19.10-arch1-1-ARCH/kernel/net/core
415080 4 drwxr-xr-x 4 root root 4096 Sep 9 09:36 /usr/lib/python2.7/site-packages/wx-3.0-gtk3/wx/lib/pubsub/core
1074158 4 drwxr-xr-x 2 root root 4096 Sep 7 03:10 /usr/lib/python2.7/site-packages/radialnet/core
Donc, toutes les correspondances sont des répertoires, et parce que j'utilise rm
sans le -r
option, il ne faut pas supprimer les répertoires, ce qui signifie qu'il ne faut rien supprimer.
Cependant, après l'exécution de la commande, la plupart des éléments de mon système se sont cassés, par exemple zsh, i3. et quand je redémarre mon PC, j'ai eu une panique du noyau, une mauvaise valeur d'extraction ou quelque chose.
Je pourrais réinstaller à nouveau puisque j'ai la partition principale et la partition principale. Mais je suis très curieux de savoir pourquoi cela a brisé le système.
find
commandes qui contiennent-o
. Comme vous le feriez si un serpent vous offrait une toeat aux champignons.-o
signifie «logique ou» maintenant, mais toujours confus au sujet de la-prune
option. Est-ce que je viens de supprimer tout ce qui n'a pascore
et sous lib ou? tout sauf les fichiers sous/lib' and have
core` dans le nom?Réponses:
Quelques fragments pertinents de
find
spécification :Maintenant votre commande (juste pour l'avoir en vue):
Quelques conclusions et faits:
-xdev
s'applique à tout, même à la partie après-o
.-a
) précède-o
, votre commande est comme( expression1 ) -o ( expression2 )
(comparer cette réponse ).-ls
.-ls
a fonctionné, la première expression était vraie, donc la seconde n'a pas été évaluée (ce qui signifie que les correspondances que vous avez vues n'ont pas été supprimées)-path "/lib*"
correspond à ces objets:lib*
directement dans/
,lib*
directement dans/
,tous les objets dans les répertoires à partir du premier point(pas dans votre cas, à cause de-prune
).Alors
rm
a été invoqué pour tout objet remplissant toutes les conditions suivantes:/
(en raison de-xdev
).core
(à cause de comment-o
travaux)./
et son nom correspondlib*
.Je lance ceci dans mon Kubuntu pour imprimer de tels objets:
et le résultat était
Chacun de ceux-ci est un répertoire, unique
rm
(sans pour autant-r
) ne peut pas l'enlever. Je suis presque sûr que dans mon cas, votre commande originale ne briserait pas le système. toutefois si tout objet correspondant n'était pas un répertoire,rm
serait probablement le supprimer.FHS - Norme de hiérarchie des systèmes de fichiers dit:
je deviner votre
/lib
peut avoir été un lien symbolique etrm
eu aucun problème pour l'enlever. Cet emplacement concerne les bibliothèques partagées essentielles et les modules du noyau (voir FHS ou cette réponse ), pas étonnant que vous avez cassé votre système. Je ne peux pas être sûr qu'il n'y avait pas d'autrelib*
non-répertoire qui a également été supprimé; mais si j'ai raison à propos de/lib
puis peut être recréer le lien symbolique est tout ce dont vous avez besoin pour réparer le système.Dans une autre de mes réponses le premier conseil est
mais il semble que vous ayez déjà appris votre leçon.
la source