Xác minh rm kép trong zsh


15

Khi tôi làm một rm * trong zsh, tôi nhận được một cái gì đó như thế này:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

Đầu tiên zsh hỏi tôi nếu tôi chắc chắn muốn xóa tất cả, và sau đó rm yêu cầu cho từng tệp cụ thể.

Làm thế nào tôi có thể có xác minh zsh?


3
Sử dụng rm -f ./*. Theo mặc định, rmkhông yêu cầu bất cứ điều gì trừ khi bạn không có quyền ghi vào tệp. Có thể bạn có mộtalias rm='rm -i'
Stéphane Chazelas

Ồ phải vậy thôi - Tôi đang chạy các bản xóa từ trong vỏ Vagrant và các tệp được lưu trữ trên hệ thống tệp máy tính xách tay. Cảm ơn
ardochhigh

1
Chỉ cần một lưu ý, zsh vẫn nhắc về "rm -rf *", điều này có thể bị vô hiệu hóa vớisetopt rmstarsilent
Matt

Câu trả lời:


29

Thông báo Zsh zsh: chắc chắn bạn muốn xóa tất cả các tệp. Đây là một tính năng zsh, được kích hoạt cụ thể bằng cách gọi một lệnh được gọi rmvới một đối số là *hoặc something/*trước khi mở rộng toàn cầu. Bạn có thể tắt cái này với setopt rm_star_silent.

Thông báo rm rm: xóa tập tin thường xuyên xuất phát từ rmchính lệnh. Nó sẽ không hiển thị theo mặc định, nó chỉ xuất hiện khi rmđược gọi với tùy chọn -i. Nếu bạn không muốn tin nhắn này, đừng vượt qua tùy chọn đó. Ngay cả khi không có -i, rmnhắc nhở xác nhận (với một thông báo khác) nếu bạn cố xóa một tệp chỉ đọc; bạn có thể xóa xác nhận này bằng cách chuyển tùy chọn -f.

Vì bạn không truyền -ivào dòng lệnh, rmcó lẽ là bí danh cho rm -i(nó cũng có thể là một hàm, lệnh bao bọc không chuẩn hoặc bí danh khác, nhưng bí danh rm -icho đến nay là hợp lý nhất). Một số cấu hình mặc định bao gồm alias rm='rm -i'trong các tệp khởi tạo shell của chúng; đây có thể là thứ mà bản phân phối của bạn hoặc quản trị viên hệ thống của bạn thiết lập hoặc thứ gì đó bạn nhặt được từ đâu đó và thêm vào tệp cấu hình của bạn sau đó quên. Kiểm tra ~/.zshrcđịnh nghĩa bí danh của bạn cho rm. Nếu bạn tìm thấy một, loại bỏ nó. Nếu bạn không tìm thấy, hãy thêm một lệnh để xóa bí danh:

unalias rm

6

Lệnh chính xác để vô hiệu hóa xác minh kép dường như setopt rm_star_silent. Để cho phép xác minh kép làm setopt no_rm_star_silent.

Để biết thêm thông tin chi tiết, hãy xem trang người đàn ông cho zshoptions man zshoptionshoặc http://linux.die.net/man/1/zshoptions


hoặcunsetopt rm_star_silent
evandrix

1

Nếu bạn đang sử dụng plugin oh-my-zsh tthe chung-aliases bao gồm bí danh rm -i.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
jayhendren

@jayhendren - đó không phải là một liên kết đến tài liệu, nó là một liên kết đến một cái gì đó để cài đặt để khắc phục sự cố ...
Wouter Verhelst
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.