Làm cách nào tôi có thể viết một tập lệnh nhỏ để dọn sạch các tệp của thư mục khi máy tính khởi động?


9

Tôi có một máy tính khách chỉ sử dụng internet. Một số người dùng tải xuống một số tệp và để chúng trên máy tính để bàn nhưng máy tính không có đủ dung lượng cho tất cả khách và không được phép đặt tệp vào đó.

Những gì tôi muốn làm là dọn sạch mọi tệp trong thư mục chính khi máy tính khởi động, nhưng giữ cấu trúc thư mục như Âm nhạc, Hình ảnh, Tài liệu & Tải xuống.

Làm thế nào tôi có thể thực hiện điều này?


Để gần như tất cả: câu trả lời của bạn - xin lỗi - hút và bạn biết điều đó. Nếu khách chọn ngôn ngữ khác thì sao? Còn tất cả những tệp cấu hình và bộ đệm ẩn (lịch sử trình duyệt, thùng rác, ...) thì sao? Thay vào đó nên có một danh sách trắng các tệp sẽ không bị xóa (theo Roland Taylor). Hơn nữa, bạn nên xem xét sử dụng xdg-user-dir~/.config/user-dirs.dirscho các thư mục mặc định.
dAnjou

@dAnjou: với giải pháp của tôi, các thư mục tiêu chuẩn ở nhà sẽ được tạo theo ngôn ngữ được chọn. Ngoài ra, OP dường như yêu cầu một môi trường sạch sẽ, vì vậy tôi không thể hiểu tại sao phải có cái mà bạn gọi là "danh sách trắng".
enzotib

1
@enzotib: Ok, xin lỗi. Rõ ràng Roland Taylor (và tôi) đã sai. Tôi không biết thứ gì đánh tôi. Bạn có thể chỉnh sửa câu trả lời của mình và thêm khả năng đưa tập lệnh của bạn vào /etc/gdm/PostSessionhoặc /etc/gdm/PreSessionđể tôi có thể lấy lại downvote của mình không?
dAnjou

Câu trả lời:


14

Bạn có thể xóa tất cả các tệp trong thư mục chính một cách an toàn , vì chúng được tạo lại, ngoài các tệp được sao chép khi tạo người dùng /etc/skel, vì vậy

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

nơi usernamenên được thay thế bằng một cái gì đó có ý nghĩa.

Theo yêu cầu của bạn ("khi máy tính khởi động"), điều này có thể được thực thi từ /etc/rc.local. Nhiều khả năng, bạn muốn thực thi nó giữa mỗi lần đăng nhập, vì vậy hãy đặt nó dưới /etc/gdm/PostSessionhoặc /etc/gdm/PreSession.


Bạn biết có một số tập tin mà nếu bị xóa nó sẽ khiến bạn không thể đăng nhập?
RolandiXor

@Roland Taylor: tập tin nào? Tôi vừa thử nghiệm xóa tất cả các tệp
enzotib

1
@danjjl: tùy chọn này làm cho bash khớp *với tất cả các tệp và thư mục, ngay cả những tệp bị ẩn.
enzotib

1
không, các tệp bị thiếu sẽ không ngăn bạn đăng nhập. Một thư mục chính bị thiếu, có thể gây ra sự cố hoặc các tệp có quyền sai được đặt. Nhưng trong mọi trường hợp, chương trình không bao giờ nên cho rằng một tệp tồn tại. Nếu nó không tồn tại, thì nó nên được tạo ra.
Jo-Erlend Schinstad

1
Tôi không đề nghị phải đặt nó trong "ứng dụng khởi động", mà có lẽ chạy sau các user-dirs-update-gtkkịch bản khởi động toàn cầu. Đối với người dùng khác, bạn phải thay đổi usernametập lệnh. Cuối cùng, tài khoản khách không có thư mục chính liên tục, vì vậy tập lệnh này không cần thiết cho tài khoản này.
enzotib

6

Bạn đang mô tả phiên khách. Tôi không hoàn toàn chắc chắn làm thế nào nó hoạt động, nhưng trong 11.10, nó được hiển thị theo mặc định trong màn hình chào mừng. Tài khoản đó thực hiện chính xác những gì bạn muốn, vì vậy câu hỏi là nếu bạn muốn dành thời gian cố gắng tạo lại nó vào ngày 11.04 hoặc nếu bạn muốn đợi cho đến khi bạn cảm thấy thoải mái với việc nâng cấp lên 11.10. Nó đang vào bản Beta 1 vào thứ năm. Trong mọi trường hợp, việc tải xuống và khởi động phiên trực tiếp sẽ không hại gì và xem bạn thích nó như thế nào. Nếu đó chính xác là cách bạn muốn, thì bạn sẽ biết cách tạo lại nó.


2

Tạo một tập lệnh với tên bạn chọn và thêm nội dung này:

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

Lưu tệp này, đánh dấu nó là tệp thực thi và thêm nó vào các ứng dụng khởi động của bạn (đối với tài khoản cần được xóa).

Điều này sẽ xóa tất cả các tập tin trong các thư mục. Tuy nhiên, để làm sạch nội dung của ~/chính nó phức tạp hơn một chút và tôi sẽ cập nhật câu trả lời của mình nếu tôi tìm được cách an toàn để làm điều đó.


1

Bạn có thể làm một cái gì đó như

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

Lưu cái này như một cái gì đó giống như cleanup.shvà làm cho nó thực thi được chmod +x cleanup.sh. Sau đó, bạn có thể gọi ./cleanup. Lưu ý rằng điều này loại bỏ mọi thứ trong các thư mục này, sử dụng cẩn thận. Hãy chắc chắn thay đổi "Khách" thành tên người dùng của bạn.

Bạn có thể thực hiện việc này khi khởi động bằng cách thêm nó vào tùy chọn Ứng dụng khởi động.

Bạn cũng có thể thêm tập lệnh này dưới dạng công việc định kỳ trên hệ thống của mình để nó chạy mỗi đêm. Xem ở đây để biết thêm thông tin về công việc cron.


lol câu trả lời của bạn tốt hơn của tôi: D! Btw thay đổi -rf thành -r vì điều đó an toàn hơn.
RolandiXor

@Roland: không nhất thiết an toàn hơn và thậm chí là một cạm bẫy có thể xảy ra: -fngăn chặn yêu cầu xóa các tệp chỉ đọc (các tệp không có tập lệnh ghi) và xóa các tệp đó mà không cần xác nhận. Bằng cách xóa -f, người dùng có thể ngăn bất kỳ tệp nào bị xóa bằng cách tạo /home/Guest/Desktop/000000000tệp và làm cho nó chỉ đọc. Điều này sẽ làm cho tập lệnh bị treo với một xác nhận ẩn và do đó không tiếp tục với việc xóa các tập tin. Firefox được biết là thực hiện tải xuống chỉ đọc.
Lekensteyn

Đây là lý do tại sao ban đầu tôi bao gồm nó. Tôi không muốn tập lệnh thất bại trong trường hợp tập tin chỉ đọc. Tôi cũng đã hình dung ra vì dù sao đó cũng là một kịch bản có sức tàn phá khá lớn, việc thêm -fcờ sẽ không gây hại nhiều. Tôi có thể thêm nó trở lại.
Kris Harper
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.