Làm cách nào để xóa mọi thứ trong một thư mục, bao gồm các tệp và thư mục ẩn?
Ngay bây giờ, tôi sử dụng như sau:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
thư mục, sẽ xóa bất cứ thứ gì trong thư mục trên .
Làm cách nào để xóa mọi thứ trong một thư mục, bao gồm các tệp và thư mục ẩn?
Ngay bây giờ, tôi sử dụng như sau:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
thư mục, sẽ xóa bất cứ thứ gì trong thư mục trên .
Câu trả lời:
Đơn giản và thẳng tiến:
find -delete
Bao gồm các thư mục và các tập tin ẩn. Ít nhất gnu-find biết -delete
, bạn find
có thể khác.
find /path -delete -mindepth 1
.
Câu trả lời tốt nhất là: Đừng làm điều đó. Đệ quy loại bỏ thư mục chính nó, sau đó tạo lại nó như một thư mục trống. Người khác đáng tin cậy và dễ hiểu hơn những gì bạn đang cố gắng làm. Khi bạn tạo lại thư mục, nó có thể có chủ sở hữu, nhóm và quyền khác nhau. Nếu đó là những điều quan trọng hãy cẩn thận. Ngoài ra, nếu bất kỳ chương trình đang chạy nào có xử lý tệp mở (mô tả) trên thư mục thì bạn sẽ không muốn xóa nó. Nếu không có trường hợp đặc biệt nào được áp dụng, thì việc xóa toàn bộ thư mục sẽ đơn giản hơn.
rm -rf -- * .[!.]* ..?*
Mỗi mô hình trong số ba mô hình sẽ tự mở rộng nếu nó không khớp với nhau, nhưng đó không phải là vấn đề ở đây vì chúng tôi muốn khớp mọi thứ và rm -f
bỏ qua các đối số không tồn tại.
Lưu ý rằng .*
sẽ phù hợp..
.
nếu bạn đang ở trong thư mục:
cd .. && rm -rf dir && mkdir dir && cd dir
nếu không thì:
rm -rf /path/to/dir && mkdir /path/to/dir
Ôi trời ơi
rm -rf (.|)*
Một lần nữa, điều này chỉ dành cho Zsh.
*(D)
( D
vòng loại toàn cầu bật glob_dots
tùy chọn cho mẫu này).
rm -rf {.,}*
(không giống như bash, zsh không bao gồm .
và ..
vào {.,}*
, ít nhất là trên máy của tôi).
Làm thế nào về việc sử dụng find
. Tôi nghĩ rằng đây thường là một lựa chọn tốt, khi bạn phải tìm hiểu các thư mục con.
find . -type f -exec rm {} \;
Hãy thử rm -rf *?*
. Điều này sẽ xóa các tập tin bình thường và ẩn.
*?*
sẽ không khớp với các tập tin / thư mục của dot dot (trừ khi bạn đã bật dotglob
tùy chọn trong bash , GLOB_DOTS
tùy chọn trong zsh hoặc tương đương với bất kỳ shell nào bạn đang sử dụng).
rm -rf .* *
.