Lệnh xóa tất cả các tệp và thư mục theo cách đệ quy bao gồm, các tệp ẩn, trên MAC OS Terminal?


11

rm -rf * sẽ loại bỏ tất cả các tập tin và thư mục nhưng không ẩn.

rm -rf .* sẽ xóa tất cả các tập tin và thư mục ẩn, nhưng không phải những tập tin không bị ẩn, đúng không?

Lệnh nào nên gõ một loại, để xóa tất cả các tệp và thư mục bao gồm cả các tệp bị ẩn? (ngoại trừ. và ..); ?

Câu trả lời:


13
rm -rf * .*

sẽ thực hiện các mẹo.


1
KHÔNG! .*sẽ mở rộng ra tất cả các mục vô hình trong thư mục hiện tại bao gồm .. - điều đó có nghĩa là sử dụng .*làm đối số rm -rfsẽ cố gắng xóa thư mục phía trên thư mục bạn hiện đang ở và tất cả nội dung của nó . rm sẽ từ chối làm việc đó, nhưng tôi không xem xét việc dựa vào sự an toàn này ...
Gordon Davisson

@Gordon Davisson: Tôi đã tạo một thư mục. Tôi đã thêm các tập tin vào nó, bao gồm các tập tin ẩn. Tôi đã thực hiện lệnh đó. Nó đã xóa tất cả các nội dung bên trong thư mục đó một cách đệ quy và nó không xóa bất kỳ nội dung nào TRÊN thư mục đó. Bạn có thể vui lòng làm rõ nhận xét của bạn?
MEM

Cảm ơn đã làm rõ về nhận xét của bạn ở trên. Bây giờ tôi hiểu quan điểm của bạn. Có gợi ý nào khác không?
MEM

Cách sử dụng findvới -deletecờ ...
user1055604

1
@GordonDavisson rmsẽ in một rm: "." and ".." may not be removedtin nhắn trong trường hợp đó - nó sẽ không tự động xóa thư mục mẹ.
slhck

1

Thử cái này:

find . -mindepth 1 -delete

Tôi không chắc chắn -mindepthđược hỗ trợ bởi tất cả các triển khai find; nếu bạn không có nó, -pathnên đưa ra một cách khác để ngăn không cho nó cố xóa .:

find . -path "*/*" -delete

BSD findcũng có tùy chọn đó, yup.
slhck

1

Chỉ cần sử dụng lệnh này để lọc các tập tin / thư mục theo các tiêu chí cụ thể:

# tmpwatch -fauv 0 .

0

shopt -s dotglobcũng *bao gồm các tập tin bắt đầu với một khoảng thời gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.