Làm cách nào để tạo bash cảnh báo tôi khi ghi đè tệp hiện có?


34

Tôi nghĩ rằng tiêu đề là khá tự giải thích. Tất cả những gì tôi muốn là bash để cảnh báo tôi bất cứ khi nào tôi cố gắng ghi đè lên hiện có trong khi sử dụng cphoặc mv. Tôi thực sự đánh giá cao sự giúp đỡ. :)

Câu trả lời:


43

Bạn nên sử dụng chế độ tương tác để đảm bảo bạn nhận được 'dấu nhắc trước khi ghi đè'

cp --interactive
mv --interactive

Hay nói ngắn gọn

cp -i
mv -i

Nhập man cphoặc man mvtrên dòng lệnh của bạn để tìm hiểu thêm.


2
Vì vậy, tôi đoán những lệnh đó sẽ là bí danh trong .bashrc của tôi. Cảm ơn rất nhiều. Đánh giá cao sự giúp đỡ của bạn. :)
sayantankhan

3
Thật! Bạn có thể nối một cái gì đó giống như alias rm='rm -i'.bashrc hoặc tốt hơn là .bash_aliases của bạn. Đọc thêm trong bài Làm thế nào để tôi tạo một bí danh Bash vĩnh viễn?
don.joey

2
Nhưng tôi chỉ nghĩ về một cái gì đó. Thế còn một số kịch bản tôi đã viết. Họ sẽ sử dụng cp và mv bí danh hay bình thường?
sayantankhan

@ Bolt64 Nó phụ thuộc vào nơi bạn đặt định nghĩa bí danh của mình, nhưng thông thường nó sẽ sử dụng định nghĩa thông thường.
Jan Warchoł

12

Bạn cũng muốn đặt set -o noclobber.bashrc của bạn. Điều này sẽ gây ra lỗi nếu bạn cố ghi đè lên một tệp hiện có bằng cách chuyển hướng đầu ra.

$ set -o noclobber
$ echo one > afile
$ echo two > afile
bash: afile: cannot overwrite existing file

Bạn có thể buộc chuyển hướng làm việc với cú pháp đặc biệt:

$ echo two >| afile
$ cat afile
two

http://www.gnu.org/software/bash/manual/bashref.html#Redirecting-Output

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.