Cách xóa tệp và thư mục trong Linux Terminal

Các rm rmdir lệnh xóa tệp và thư mục trên Linux, macOS và các hệ điều hành giống Unix khác. Chúng tương tự như del deltree lệnh trong Windows và DOS. Các lệnh này rất mạnh và có khá nhiều tùy chọn.

Điều quan trọng cần lưu ý là các tệp và thư mục bị xóa bằng cách sử dụng rmrmdir không được chuyển vào Thùng rác. Chúng ngay lập tức bị xóa khỏi máy tính của bạn. Nếu bạn vô tình xóa tệp bằng các lệnh này, cách duy nhất bạn có thể khôi phục chúng là từ bản sao lưu.

Cách xóa tệp bằng rm

Trường hợp đơn giản nhất là xóa một tệp trong thư mục hiện tại. Gõ rm lệnh, một khoảng trắng, sau đó là tên của tệp bạn muốn xóa.

tệp rm_1.txt

Nếu tệp không có trong thư mục làm việc hiện tại, hãy cung cấp đường dẫn đến vị trí của tệp.

rm ./path/to/the/file/file_1.txt

Bạn có thể chuyển nhiều tên tệp cho rm. Làm như vậy sẽ xóa tất cả các tệp được chỉ định.

rm file_2.txt file_3.txt

Các ký tự đại diện có thể được sử dụng để chọn các nhóm tệp sẽ bị xóa. Các * đại diện cho nhiều ký tự và ? đại diện cho một ký tự duy nhất. Lệnh này sẽ xóa tất cả các tệp hình ảnh png trong thư mục làm việc hiện tại.

rm * .png

Lệnh này sẽ xóa tất cả các tệp có phần mở rộng là một ký tự. Ví dụ: điều này sẽ xóa File.1 và File.2, nhưng không xóa File.12.

rm *.?

Nếu tệp được bảo vệ chống ghi, bạn sẽ được nhắc trước khi tệp bị xóa. Bạn phải trả lời bằng y hoặc là n và nhấn "Enter".

Để giảm rủi ro khi sử dụng rm với các ký tự đại diện sử dụng -Tôi (tương tác) tùy chọn. Điều này yêu cầu bạn xác nhận việc xóa từng tệp.

rm -i * .dat

Các -f (lực lượng) tùy chọn ngược lại với tương tác. Nó không nhắc xác nhận ngay cả khi các tệp được chống ghi.

tên tệp rm -f

Cách xóa thư mục với rm

Để xóa một thư mục trống, hãy sử dụng -d (thư mục) tùy chọn. Bạn có thể sử dụng các ký tự đại diện (*?) trong tên thư mục giống như bạn có thể làm với tên tệp.

thư mục rm -d

Việc cung cấp nhiều hơn một tên thư mục sẽ xóa tất cả các thư mục trống được chỉ định.

rm -d directory1 directory2 / path / to / directory3

Để xóa các thư mục không trống, hãy sử dụng -r (đệ quy) tùy chọn. Để rõ ràng, điều này sẽ xóa các thư mục và tất cả các tệp và thư mục con chứa bên trong chúng.

rm -r directory1 directory2 directory3

Nếu một thư mục hoặc một tệp được bảo vệ chống ghi, bạn sẽ được nhắc xác nhận việc xóa. Để xóa các thư mục không trống và để chặn những lời nhắc này, hãy sử dụng -r (đệ quy) và -f (buộc) các tùy chọn với nhau.

thư mục rm -rf

Ở đây cần phải chăm sóc. Mắc lỗi với rm -rf lệnh có thể gây mất dữ liệu hoặc trục trặc hệ thống. Điều đó thật nguy hiểm và thận trọng là chính sách tốt nhất. Để hiểu được cấu trúc thư mục và các tệp sẽ bị xóa bởi rm -rf lệnh, sử dụng cây chỉ huy.

Sử dụngapt-get để cài đặt gói này vào hệ thống của bạn nếu bạn đang sử dụng Ubuntu hoặc một bản phân phối dựa trên Debian khác. Trên các bản phân phối Linux khác, hãy sử dụng công cụ quản lý gói của bản phân phối Linux của bạn.

sudo apt-get install tree

Chạy cây lệnh tạo ra một sơ đồ đơn giản để hiểu về cấu trúc thư mục và các tệp bên dưới thư mục mà nó được chạy.

cây

Bạn cũng có thể cung cấp một đường dẫn đến cây lệnh khiến nó khởi động cây từ một thư mục khác trong hệ thống tệp.

đường dẫn cây / đến / thư mục

Các rm lệnh cũng có --one-file-system, --no-secure-root, --preserve-root nhưng những tùy chọn này chỉ được đề xuất cho người dùng nâng cao. Nếu bạn gặp lỗi, bạn có thể vô tình xóa tất cả các tệp hệ thống của mình. Tham khảo trang hướng dẫn sử dụng lệnh để biết thêm thông tin.

Cách xóa thư mục với rmdir

Có một lệnh khác, được gọi là rmdir, mà bạn có thể sử dụng để xóa các thư mục. Sự khác biệt giữa rmrmdir đó là rmdir chỉ có thể xóa các thư mục trống. Nó sẽ không bao giờ xóa các tập tin.

Trường hợp đơn giản nhất là xóa một thư mục trống. Như với rm, bạn có thể chuyển nhiều tên thư mục tới rmdir hoặc một đường dẫn đến một thư mục.

Xóa một thư mục trong thư mục hiện tại bằng cách chuyển tên của nó vào rmdir :

thư mục rmdir

Xóa nhiều thư mục bằng cách chuyển một danh sách tên đếnrmdir :

rmdir directory1 directory2 directory3

Xóa một thư mục không có trong thư mục hiện tại bằng cách chỉ định đường dẫn đầy đủ đến thư mục đó:

thư mục rmdir / path / to /

Nếu bạn cố gắng xóa một thư mục không trống, rmdir sẽ cung cấp cho bạn một thông báo lỗi. Trong ví dụ sau rmdir thành công và âm thầm, xóa khách hàng thư mục nhưng nó từ chối xóa dự án thư mục vì nó chứa các tệp. Các dự án thư mục được để lại chính xác như ban đầu và các tệp trong đó không bị ảnh hưởng.

Khi nào rmdir đưa ra lỗi "Thư mục không trống", nó ngừng xử lý các thư mục đã được chuyển đến nó trên dòng lệnh. Nếu bạn đã yêu cầu nó xóa bốn thư mục và thư mục đầu tiên có tệp trong đó, rmdir sẽ cung cấp cho bạn thông báo lỗi và không làm gì thêm. Bạn có thể buộc nó bỏ qua những lỗi này với --ignore-fail-on-non-rỗng tùy chọn để các thư mục khác được xử lý.

Trong ví dụ sau, hai thư mục đã được chuyển đến rmdir, đó là công việc / báo cáocông việc / báo giá . Các --ignore-fail-on-non-rỗng tùy chọn đã được bao gồm trong lệnh. Các công việc / báo cáo thư mục có các tệp trong đó, vì vậy rmdir không thể xóa nó. Các --ignore-fail-on-non-rỗng lực lượng tùy chọn rmdir để bỏ qua lỗi và chuyển sang thư mục tiếp theo nó cần xử lý, đó là công việc / báo giá. Đây là một thư mục trống và rmdir xóa nó.

Đây là lệnh được sử dụng.

rmdir --ignore-fail-on-non-blank work / report / work / quote

Bạn có thể dùng -p (cha mẹ) tùy chọn để xóa một thư mục và xóa các thư mục mẹ của nó. Thủ thuật này hoạt động vì rmdir bắt đầu với thư mục đích và sau đó quay lại bước chính. Thư mục đó bây giờ sẽ trống, vì vậy nó có thể bị xóa bằng rmdirvà quy trình lặp lại bước sao lưu đường dẫn được cung cấp cho rmdir.

Trong ví dụ sau, lệnh được chuyển tới rmdir Là:

rmdir -p công việc / hóa đơn

Cả hai hóa đơncông việc thư mục bị xóa, theo yêu cầu.

Cho dù bạn đang sử dụng Bash hay bất kỳ trình bao nào khác, Linux cung cấp các lệnh linh hoạt và mạnh mẽ để bạn xóa các thư mục và tệp ngay từ dòng lệnh đầu cuối. Một số người thích có quy trình làm việc xoay quanh thiết bị đầu cuối. Những người khác có thể không có lựa chọn trong vấn đề này. Chúng có thể đang làm việc trên các máy chủ mà không có GUI được cài đặt hoặc trên một phiên từ xa trên một hệ thống không có đầu như Raspberry Pi. Những lệnh này là hoàn hảo cho nhóm người đó.

Nhưng bất kỳ loại quy trình công việc nào bạn thích, các lệnh này rất tốt để được đưa vào các tập lệnh shell. Nếu một tập lệnh được kích hoạt bởi cron công việc, nó có thể giúp tự động hóa các công việc dọn dẹp nhà cửa thông thường như xóa các tệp nhật ký không mong muốn. Nếu bạn điều tra trường hợp sử dụng đó, hãy nhớ sức mạnh của các lệnh này, kiểm tra mọi thứ cẩn thận và luôn duy trì bản sao lưu gần đây.