Bạn đã bỏ lỡ một ;
ở cuối (và một khoảng trống giữa {}
và ;
). Lệnh đúng là:
find . -type f -name "IMAG1806.jpg" -exec rm -f {} \;
;
cho biết kết thúc của -exec
vị ngữ của find
.
Cũng lưu ý rằng chúng ta đã sử dụng \;
tức là \
ở phía trước ;
để thoát khỏi việc giải thích ;
bằng shell, nếu không shell sẽ coi ;
là kết thúc của toàn bộ find
lệnh và find
sẽ đưa ra cùng một lỗi. Bạn cũng có thể sử dụng ';'
thay vì \;
.
Bạn đang sử dụng \
ở cuối, điều này cho thấy trình bao của bạn sẽ tiếp tục nhận đầu vào thông qua PS2
(được chỉ định bởi >
), bạn đã nhập IMAG1806.jpg
lại, do đó toàn bộ lệnh trở thành:
find . -type f -name "IMAG1806.jpg" -exec rm -f {}IMAG1806.jpg
Như bạn có thể thấy đây không phải là một lệnh hợp lệ IMAG1806.jpg
ở cuối, không có biến -exec
vị ngữ và không có khoảng trắng giữa {}
và \;
.
rm "IMAG1806.jpg"
? Nó nằm trong cùng một thư mục, vì vậy bạn biết nó được gọi là gì.