Xóa tệp là một thao tác cơ bản, giống như sao chép tệp hoặc đổi tên/di chuyển tệp. Trong Linux, có một lệnh chuyên dụng - được gọi là rm - cho phép bạn thực hiện tất cả các thao tác liên quan đến xóa. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của công cụ này cùng với một số ví dụ dễ hiểu.
Nhưng trước khi thực hiện, cần đề cập rằng tất cả các ví dụ được đề cập trong bài viết đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Và đây là cách trang hướng dẫn của công cụ mô tả nó:
Các ví dụ theo kiểu Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động của công cụ.
Ví dụ:
Ví dụ:
Ví dụ, giả sử bạn muốn xóa thư mục 'testdir' và toàn bộ nội dung của nó, nhưng muốn lệnh rm nhắc trước mỗi lần xóa, thì đây là cách bạn có thể thực hiện:
Tuy nhiên, nếu muốn, bạn có thể yêu cầu rm ẩn các lỗi/thông báo như vậy - tất cả những gì bạn phải làm là sử dụng tùy chọn dòng lệnh -f.
rm -f [filename]
Ví dụ: ảnh chụp màn hình sau đây cho thấy tùy chọn này đang hoạt động - không có lời nhắc khi xóa hai tệp, nhưng lệnh sẽ nhắc khi xóa hơn ba tệp.
Tuy nhiên, nếu bạn muốn tiếp tục thao tác này vì bất kỳ lý do gì, thì bạn cần phải nói điều này với rm bằng cách sử dụng tùy chọn --no-preserve-root. Khi tùy chọn này được bật, rm không xử lý thư mục gốc (/) một cách đặc biệt.
Trong trường hợp bạn muốn biết các tình huống mà người dùng có thể muốn xóa thư mục gốc của hệ thống, hãy truy cập tại đây.
Ảnh chụp màn hình sau đây cho thấy tùy chọn dòng lệnh -d đang hoạt động - chỉ có thư mục trống mới bị xóa.
Ví dụ:
Nhưng trước khi thực hiện, cần đề cập rằng tất cả các ví dụ được đề cập trong bài viết đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Lệnh rm của Linux
Vì vậy, theo cách nói của người bình thường, chúng ta có thể chỉ cần nói rằng lệnh rm được sử dụng để xóa/xóa tệp và thư mục. Sau đây là cú pháp của lệnh:
Mã:
rm [OPTION]... [FILE]...
Mã:
Trang hướng dẫn này ghi lại phiên bản GNU của rm. rm xóa từng tệp được chỉ định. Theo mặc định, nó
không xóa các thư mục.
Nếu tùy chọn -I hoặc --interactive=once được đưa ra và có nhiều hơn ba tệp hoặc -r,
-R hoặc --recursive được đưa ra, thì rm sẽ nhắc người dùng về việc có nên tiếp tục toàn bộ
hoạt động hay không. Nếu phản hồi không phải là khẳng định, toàn bộ lệnh sẽ bị hủy bỏ.
Nếu không, nếu tệp không thể ghi, đầu vào chuẩn là một thiết bị đầu cuối và tùy chọn -f hoặc --force
không được cung cấp, hoặc tùy chọn -i hoặc --interactive=always được cung cấp, rm sẽ nhắc người dùng về việc có nên
xóa tệp hay không. Nếu phản hồi không phải là khẳng định, tệp sẽ bị bỏ qua.
Câu hỏi 1. Làm thế nào để xóa tệp bằng lệnh rm?
Điều đó khá dễ dàng và đơn giản. Tất cả những gì bạn phải làm là truyền tên của các tệp (cùng với đường dẫn nếu chúng không nằm trong thư mục làm việc hiện tại) làm đầu vào cho lệnh rm.
Mã:
rm [tên tệp]
Mã:
rm testfile.txt
Câu hỏi 2. Làm thế nào để xóa các thư mục bằng lệnh rm?
Nếu bạn đang cố gắng xóa một thư mục, thì bạn cần sử dụng tùy chọn dòng lệnh -r. Nếu không, lệnh rm sẽ báo lỗi cho biết bạn đang cố xóa một thư mục.
Mã:
rm -r [tên thư mục]
Mã:
rm -r testdir
Câu 3. Làm thế nào để lệnh rm nhắc trước mỗi lần xóa?
Nếu bạn muốn lệnh rm nhắc trước mỗi hành động xóa mà nó thực hiện, hãy sử dụng tùy chọn dòng lệnh -i.
Mã:
rm -i [tệp hoặc thư mục]
Mã:
rm -r -i testdir
Câu hỏi 4. Làm thế nào để buộc rm bỏ qua các tệp không tồn tại?
Lệnh rm cho bạn biết thông qua thông báo lỗi nếu bạn cố xóa một tệp hoặc thư mục không tồn tại.Tuy nhiên, nếu muốn, bạn có thể yêu cầu rm ẩn các lỗi/thông báo như vậy - tất cả những gì bạn phải làm là sử dụng tùy chọn dòng lệnh -f.
rm -f [filename]
Câu hỏi 5. Làm thế nào để chỉ nhắc lệnh rm trong một số trường hợp?
Có một tùy chọn dòng lệnh -I, khi được sử dụng, sẽ đảm bảo lệnh chỉ nhắc một lần trước khi xóa hơn ba tệp hoặc khi xóa đệ quy.Ví dụ: ảnh chụp màn hình sau đây cho thấy tùy chọn này đang hoạt động - không có lời nhắc khi xóa hai tệp, nhưng lệnh sẽ nhắc khi xóa hơn ba tệp.
Câu hỏi 6. rm hoạt động như thế nào khi xử lý thư mục gốc?
Tất nhiên, xóa thư mục gốc là điều cuối cùng mà người dùng Linux mong muốn. Đó là lý do tại sao lệnh rm không cho phép bạn thực hiện thao tác xóa đệ quy trên thư mục này theo mặc định.Tuy nhiên, nếu bạn muốn tiếp tục thao tác này vì bất kỳ lý do gì, thì bạn cần phải nói điều này với rm bằng cách sử dụng tùy chọn --no-preserve-root. Khi tùy chọn này được bật, rm không xử lý thư mục gốc (/) một cách đặc biệt.
Trong trường hợp bạn muốn biết các tình huống mà người dùng có thể muốn xóa thư mục gốc của hệ thống, hãy truy cập tại đây.
Câu hỏi 7. Làm thế nào để lệnh rm chỉ xóa các thư mục trống?
Trong trường hợp bạn muốn hạn chế khả năng xóa thư mục của lệnh rm chỉ đối với các thư mục trống, thì bạn có thể sử dụng tùy chọn dòng lệnh -d.
Mã:
rm -d [dir]
Câu hỏi 8. Làm thế nào để buộc rm phát ra thông tin chi tiết về hoạt động mà nó đang thực hiện?
Nếu bạn muốn rm hiển thị thông tin chi tiết về hoạt động đang được thực hiện, thì bạn có thể thực hiện bằng cách sử dụng tùy chọn dòng lệnh -v.
Mã:
rm -v [tên tệp hoặc thư mục]