Lệnh rm Linux: Mọi thứ bạn cần biết

Tác giả sysadmin, T.Mười 17, 2023, 08:43:12 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Lệnh rm Linux: Mọi thứ bạn cần biết


Có nhiều thứ để rm hơn là bắt mắt. Lệnh rm cho phép bạn xóa một tập tin hoặc thư mục có tên của nó: "rm filename" hoặc "rm -d folder." Bạn cũng có thể bao gồm một đường dẫn thư mục. Nếu có tệp trong thư mục, hãy sử dụng tùy chọn -r "rm -r folder" để xóa các tệp và thư mục theo cách đệ quy.

Lệnh Linux rm xóa các tập tin và thư mục. Để sử dụng công cụ này một cách an toàn, bạn cần chắc chắn điều gì sẽ xảy ra khi bạn nhấn "Enter". Đây là những gì bạn cần biết.

1. Lệnh rm trong Linux là gì?

Lệnh Linux rm chủ yếu dùng để xóa các tập tin. Đó là vấn đề mà hầu hết mọi người đều gặp phải ngay sau khi họ bắt đầu sử dụng Linux. Chỉ vì là người mới làm quen với Linux, bạn có thể mắc sai lầm. Bạn sẽ vô tình tạo hoặc sao chép các tập tin, hoặc sai tên hoặc sai địa điểm. Đó là một phần của quá trình học tập dòng lệnh. Các hoạt động dọn dẹp những lỗi như vậy bao gồm rm.

Lệnh rm có thể xóa các tập tin, nhóm tập tin, thư mục hoặc toàn bộ cây thư mục. Đó là lý do tại sao nó phải được sử dụng một cách thận trọng. Việc sử dụng rm không khó nhưng tỷ lệ thất bại rất cao.

Khi một tập tin bị xóa bằng rm, nó sẽ biến mất. Nó không được chuyển vào thùng rác. Nó bị xóa ngay lập tức. Điều đó không có nghĩa là bạn nên tránh sử dụng rm. Nhưng để sử dụng nó một cách an toàn, bạn cần phải biết nó có thể làm gì và đảm bảo rằng bạn đang sử dụng nó đúng cách.

Một số công cụ nguy hiểm hơn những công cụ khác và khó tha thứ cho những sai lầm hơn nhiều. Đó là lý do tại sao chưa từng có bộ phim nào tên là The Texas Wrench Massacre. rm không phải là cờ lê, nó chắc chắn là cưa máy.

Mọi người sử dụng cưa máy cả ngày, và miễn là họ sử dụng một cách có trách nhiệm và có tâm thì vẫn ổn. Đó là thỏa thuận tương tự với rm. Khi rút rm túi dụng cụ ra, bạn nên chạy chậm lại và kiểm tra, sau đó kiểm tra kỹ dòng lệnh của mình.

Lệnh này rm có thể thực thi được, nó không phải là một phần của shell. Vì vậy, mặc dù chúng tôi đang sử dụng Bash ở đây, nhưng đó là Linux tiêu chuẩn rm, không phải Bash đặc biệt rm.

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

Cách sử dụng đơn giản nhất rm là cung cấp tên của tệp bạn muốn xóa.

Mã nguồn [Chọn]
rm config.gc

Bạn đang âm thầm trở lại dòng lệnh. rm áp dụng lập trường Linux cổ điển, kín tiếng rằng nếu nó không phàn nàn về bất cứ điều gì, bạn có thể cho rằng nó đã làm những gì bạn yêu cầu. Việc cung cấp tên tệp như thế này sẽ giúp rm tìm kiếm tệp trong thư mục làm việc hiện tại.

Bạn có thể cung cấp nhiều tên tệp trên dòng lệnh. Bạn cũng có thể cung cấp đường dẫn thư mục nếu tệp bạn muốn xóa không có trong thư mục hiện tại.

Mã nguồn [Chọn]
rm memlog.sh /home/dave/dev-archive/config.gc

Một lần nữa, không có gì được báo cáo nếu rm quản lý việc xóa các tệp được chỉ định.

3. Sử dụng ký tự đại diện với rm

Ký tự đại diện cho phép bạn chỉ định các nhóm hoặc tập hợp tệp mà không cần phải liệt kê các tệp riêng lẻ trên dòng lệnh.

Dấu hoa thị " *" đại diện cho bất kỳ chuỗi ký tự nào, kể cả không có ký tự nào. Dấu chấm hỏi " ?" đại diện cho bất kỳ ký tự đơn nào.

Để kiểm tra xem các ký tự đại diện của bạn có khớp với những gì bạn mong đợi hay không, bạn có thể sử dụng chúng với ls trước khi sử dụng chúng với rm.

Để xóa tất cả các tệp PNG trong thư mục hiện tại, hãy sử dụng "*.png." Điều này có nghĩa là bất kỳ chuỗi ký tự nào theo sau ".png" sẽ được khớp. Khi các tập tin đã bị xóa, chúng ta có thể sử dụng lsđể xác minh rằng chúng đã biến mất.

Mã nguồn [Chọn]
ls *.png
Mã nguồn [Chọn]
rm *.png
Mã nguồn [Chọn]
ls *.png

Trên máy tính thử nghiệm của chúng tôi, chúng tôi có hai tệp trong thư mục hiện tại có tên bắt đầu bằng "config".

Chúng tôi có thể xóa cả hai thứ này bằng cách sử dụng ký tự đại diện dấu hoa thị. Nó khớp với cả hai tệp vì rm đang tìm kiếm tên tệp bắt đầu bằng "config", theo sau là bất kỳ chuỗi ký tự nào. Trên một tệp, chuỗi ký tự đó là ".sl3", phần mở rộng tên tệp. Tên tệp còn lại không có ký tự nào sau "config", nhưng vì dấu hoa thị khớp với bất kỳ ký tự nào hoặc không có ký tự nào nên nó cũng khớp với tên tệp đó.

Mã nguồn [Chọn]
ls config*
Mã nguồn [Chọn]
rm config*
Mã nguồn [Chọn]
ls config*

Bạn có thể sử dụng dấu chấm hỏi theo cặp. Thao tác này sẽ xóa các tệp có phần mở rộng tệp chính xác là hai ký tự.

Mã nguồn [Chọn]
ls *.??
Mã nguồn [Chọn]
rm *.??
Mã nguồn [Chọn]
ls *.??

4. Sử dụng rm một cách tương tác

Một cách an toàn để sử dụng rm là buộc nó yêu cầu xác nhận trước khi xóa từng tệp. Tùy -ichọn (tương tác) cho phép bạn thực hiện việc này. Khi bạn thêm tùy chọn này vào dòng lệnh, tùy chọn này rm sẽ nhắc bạn trước mỗi lần xóa, giúp bạn có cơ hội thực hiện các hành động ngoài ý muốn.

Chúng tôi sẽ sử dụng -itùy chọn (tương tác) trong lệnh này. Nó cố gắng xóa tất cả các tệp có phần mở rộng tệp ký tự duy nhất.

Mã nguồn [Chọn]
rm -i *.?

Mỗi tập tin phù hợp được trình bày lần lượt. Nếu bạn trả lời "y" hoặc "Y" thì tập tin sẽ bị xóa. Nếu bạn trả lời "n", tập tin sẽ được giữ lại. Trên thực tế, nếu bạn trả lời bằng bất cứ điều gì khác ngoài "y" hoặc "y", tệp sẽ được giữ lại. Bạn chỉ cần nhấn "Enter" và tệp sẽ được giữ lại.

Bạn có thể nhanh chóng xem qua danh sách tệp của mình, xóa hoặc bỏ qua các tệp để chọn những tệp bạn muốn xóa. Như chúng ta sẽ thấy, bạn có thể sử dụng i-tùy chọn (tương tác) với rm các tùy chọn khác.

5. Sử dụng rm với tùy chọn Force

Nếu bạn cố gắng xóa một tệp ở chế độ chỉ đọc, rm sẽ nhắc bạn xác nhận trước khi xóa tệp đó. Đó là một mạng lưới an toàn tốt nhưng có thể trở nên tẻ nhạt nếu bạn có nhiều tệp cần xóa.

Mã nguồn [Chọn]
rm geonames.sl3

Tùy chọn -f (bắt buộc) hướng dẫn rm không bao giờ nhắc. Bạn đang nói với nó "Có, hãy xóa tất cả các tệp mà bạn thường nhắc tôi." Nó cũng ngăn cản rm việc phàn nàn về các tập tin không tồn tại.

Mã nguồn [Chọn]
rm -f geonames.sl3

Tùy chọn -f (bắt buộc) thường được sử dụng khi bạn xóa một tập hợp các tệp và thư mục lồng nhau.

6. Xóa thư mục bằng rm

Lệnh rm cũng có thể tùy ý xóa các thư mục, cùng với các tệp chứa trong đó. Lệnh này tương tự như rm dir lệnh nhưng rm dir không thể xóa các thư mục chứa tệp trong đó. Nó chỉ xóa các thư mục trống. Lệnh rm có thể dễ dàng xóa các thư mục chứa tập tin và các thư mục khác.

Xóa một thư mục cũng tương tự như xóa một tập tin. Chúng tôi cung cấp tên của thư mục trên dòng lệnh. Chúng ta cần bao gồm -dtùy chọn (thư mục). Giống như khi xóa tệp, chúng tôi có thể cung cấp tên của một số thư mục. Chúng tôi có thể cung cấp đường dẫn đến thư mục không có trong thư mục làm việc hiện tại.

Mã nguồn [Chọn]
rm -d old-projects

Nếu thư mục chứa các tập tin, điều này sẽ thất bại.

Để xóa một thư mục và nội dung của nó, hãy sử dụng -rcờ (đệ quy). Thao tác này sẽ xóa thư mục, các tập tin của nó và mọi thư mục lồng nhau mà nó chứa.

Mã nguồn [Chọn]
rm -d archive
Mã nguồn [Chọn]
rm -r archive

Lệnh thứ hai thành công.

Để chuyển rm sang chế độ cưa xích đầy đủ, chúng ta có thể kết hợp các tùy chọn -r(đệ quy) và -f (bắt buộc). Điều này yêu cầu rm xóa đệ quy tất cả các tệp và thư mục trong cây thư mục, ngay cả khi chúng ở chế độ chỉ đọc và không bao giờ nhắc chúng tôi.

Trên máy tính thử nghiệm của chúng tôi, chúng tôi có một thư mục có tên là "mã được di chuyển". Nó chứa các tập tin và một thư mục khác có tên "6502." Thư mục "6502" cũng chứa các tệp và thư mục khác có tên "ASM." Có cả tập tin trong thư mục đó nữa. Một số tệp ở dạng chỉ đọc.

Chúng tôi cũng sẽ bao gồm -vlệnh (dài dòng) để cho rm chúng tôi biết nó đang làm gì.

Mã nguồn [Chọn]
rm -rfv migrated-code

Trong kết quả đầu ra, chúng ta có thể thấy rằng các tệp đã bị xóa và khi chúng trống, các thư mục cũng bị xóa.


7. Tránh Sai Lầm Khi Sử Dụng rm

Dấu cách và các ký tự lạ khác trong tên tệp có thể gây ra vấn đề. -Ví dụ: tên tệp bắt đầu bằng dấu gạch nối " " có thể bị nhầm lẫn với các tùy chọn dòng lệnh. Nếu chúng tôi có tệp có tên "-contributors.txt", rm sẽ cố gắng xử lý tên dưới dạng một chuỗi các tùy chọn dòng lệnh.

Vì rm không có tùy chọn có tên " -c" nên việc phân tích cú pháp dòng lệnh không thành công và tệp không bị xóa. Để xóa tệp, bạn cần đặt trước nó bằng "./" để cung cấp đường dẫn đến tệp đó.

Mã nguồn [Chọn]
rm -contributors.txt
Mã nguồn [Chọn]
rm./-contributors.txt

Khoảng trắng trong tên tập tin cũng có vấn đề. Trích dẫn toàn bộ tên tệp hoặc sử dụng tính năng hoàn thành tab để chèn tên tệp vào dòng lệnh cho bạn, thoát khỏi khoảng trắng khi thực hiện như vậy. Nếu bạn không sử dụng một trong hai tùy chọn này, rm mỗi phần của tên tệp sẽ được coi là một tệp riêng lẻ.

Ở đây, chúng tôi có hai tệp, một tệp có tên là "sao lưu" và một tệp có tên là "sao lưu để xóa". Chúng tôi có thể chứng minh vấn đề với những tên tệp này bằng cách sử dụng ls. Nếu chúng tôi cố gắng sử dụng lstrên tệp "sao lưu để xóa" và chúng tôi không thoát hoặc trích dẫn tên tệp thì lệnh sẽ không thành công.

Mã nguồn [Chọn]
ls -hl backup to delete

Lệnh ls phàn nàn rằng nó không thể tìm thấy các tập tin có tên "đến" hoặc "xóa", nhưng nó lại tìm thấy một tập tin có tên là "sao lưu". Đó rm cũng là điều sẽ làm. Nó sẽ phàn nàn về hai tệp bị thiếu và sau đó nó sẽ xóa tệp có tên "sao lưu", đây không phải là điều chúng tôi mong muốn.

Mã nguồn [Chọn]
rm backup to delete

Lệnh rm cho rằng nó đang hoạt động với ba tệp, "sao lưu", "đến" và "xóa". Nó phàn nàn rằng nó không thể tìm thấy "đến" và "xóa", nhưng nó tìm và âm thầm xóa "bản sao lưu".

Trích dẫn tên tệp cho phép rm xóa tệp chính xác.

Mã nguồn [Chọn]
rm 'backup to delete'

Bạn cũng có thể thoát khỏi khoảng trắng bằng dấu gạch chéo ngược " \", như thế này:

Mã nguồn [Chọn]
rm backup\ to\ delete

Nếu bạn sử dụng tính năng hoàn thành tab để nhập tên tệp của mình, chúng sẽ tự động được thoát nếu cần.

8. Sử dụng rm -rf để xóa mọi thứ

Nếu bạn thực sự cần xóa bất cứ thứ gì và mọi thứ, chỉ cần sử dụng lệnh:

Mã nguồn [Chọn]
rm -rf
Điều đó kết hợp cờ -f, buộc xóa, với cờ -r, sẽ xóa các thư mục theo cách đệ quy. Trước đây chúng tôi đã thêm đối số -v (để làm cho nó dài dòng hơn), nhưng điều đó không cần thiết. Chỉ cần lưu ý rằng về cơ bản đây là tùy chọn hạt nhân và bạn không nên sử dụng nó trừ khi bạn hoàn toàn chắc chắn rằng mình muốn thứ gì đó biến mất mãi mãi.

9. PPE gì?

Không giống như cưa máy trong thế giới thực, bạn không thể sử dụng thiết bị bảo hộ cá nhân nào với máy cưa rm.

Những gì bạn có thể làm là kiểm tra cú pháp của bạn trước ls khi thử rm và sử dụng chế độ tương tác để bạn có thể quyết định nội dung nào sẽ bị xóa.

Ngoài ra, đó là luyện tập cho đến khi bạn cảm thấy thoải mái và tự tin. Cách an toàn nhất để làm điều đó là sao chép một loạt tệp hy sinh vào một thư mục và thực hành trên đó.