Cách xóa tệp và thư mục trong Linux Terminal
Các rm
và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
và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 rm
và rmdir
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 (*
và ?
) 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 rm
và rmdir
đó 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áo
và cô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 rmdir
và 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 đơn
và cô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.