Tôi muốn nhận danh sách tất cả các tệp trong hệ thống Gentoo Linux của tôi chưa được trình quản lý gói (Portage) cài đặt. Điều này là do tôi muốn giữ cho hệ thống của mình sạch nhất có thể, loại bỏ tất cả các tệp vô dụng nằm xung quanh.
Hãy để tôi nói cho bạn biết những gì tôi đã cố gắng cho đến bây giờ. Trước hết, tôi tạo danh sách tất cả các tệp thuộc về một số gói được theo dõi bởi Portage:
equery files "*" | sort | uniq > portage.txt
Sau đó, tôi tạo danh sách tất cả các tệp trên hệ thống của mình, ngoại trừ những tệp mà tôi không quan tâm:
find / \( -path /dev -o -path /proc -o -path /sys -o -path /media \
-o -path /mnt -o -path /usr/portage -o -path /var/db/pkg \
-o -path /var/www/localhost/htdocs -o -path /lib64/modules \
-o -path /usr/src -o -path /var/cache -o -path /home \
-o -path /root -o -path /run -o -path /var/run -o -path /var/tmp \
-o -path /var/log -o -path /tmp -o -path /etc/config-archive \
-o -path /usr/local/portage -o -path /boot \) -prune \
-o -type f | sort | uniq > all.txt
Cuối cùng, tôi nhận được danh sách tất cả các tệp không được Portage theo dõi:
comm -13 portage.txt all.txt > extra.txt
Một số thống kê:
wc -l portage.txt all.txt extra.txt
127724 portage.txt
78371 all.txt
8438 extra.txt
Như bạn thấy tôi vẫn nhận được hơn tám nghìn tệp bổ sung. Tôi muốn giảm số lượng đó, để tập trung hơn vào các tệp thực sự cần phải xóa.
Tôi nhận thấy rằng extra.txt
có hàng ngàn tệp trong một số ít thư mục, chẳng hạn như /usr/lib64/gcc
, /usr/lib64/python2.7
và /usr/lib64/python3.2
. Các /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.3/crtbegin.o
tập tin, ví dụ, không phải là portage.txt
bởi vì, ở vị trí của nó, có /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/crtbegin.o
. Trên hệ thống của tôi /usr/lib
là một liên kết tượng trưng đến /usr/lib64
. Vì vậy, có vẻ như tôi cần xử lý đúng các liên kết tượng trưng để có kết quả tốt hơn. Có lẽ bằng cách thêm vào portage.txt
tất cả các tập tin họ trỏ đến. Tôi thực sự không biết làm thế nào để làm điều đó.
Ngoài ra, tại sao portage.txt
lớn hơn all.txt
? Không nên ngược lại vì các tệp được theo dõi bởi Portage là tập hợp con của tất cả các tệp trong hệ thống của tôi?
Cuối cùng, tôi có quên bất kỳ vị trí nào khác trong find
lệnh cũng nên được loại trừ không?