Tôi có một danh sách các tệp mà tôi muốn kiểm tra xem chúng có tồn tại trên hệ thống tệp của tôi không. Tôi nghĩ làm việc này bằng cách sử dụng findnhư trong:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(sử dụng zsh) nhưng điều đó finddường như không hoạt động để thoát khỏi 0việc nó có tìm thấy tệp hay không. Tôi đoán tôi có thể vượt qua một số thử nghiệm khác để kiểm tra xem liệu có findtạo ra bất kỳ đầu ra nào không (thô nhưng hiệu quả sẽ thay thế > /dev/nullbằng |grep '') nhưng cảm giác này giống như sử dụng một con troll để bắt một con dê (các quốc tịch khác có thể nói gì đó về búa tạ và quả óc chó ).
Có cách nào để ép buộc findđể cho tôi một giá trị thoát hữu ích không? Hoặc ít nhất để có được danh sách những tập tin không tìm thấy? (Tôi có thể tưởng tượng cái sau có lẽ dễ dàng hơn bởi một số lựa chọn khôn ngoan của các kết nối logic, nhưng tôi dường như luôn bị trói buộc trong các nút thắt khi tôi cố gắng tìm ra nó.)
Bối cảnh / Động lực: Tôi có bản sao lưu "chính" và tôi muốn kiểm tra xem một số tệp trên máy cục bộ của tôi có tồn tại trên bản sao lưu chính của mình trước khi xóa chúng (để tạo một chút dung lượng). Vì vậy, tôi đã lập một danh sách các tệp, chỉnh sửa sshchúng cho máy chủ và sau đó không biết tìm ra cách tốt nhất để tìm các tệp bị thiếu.
locatekhông hiển thị trạng thái hiện tại của hệ thống tệp, nó có thể là một ngày hoặc thậm chí là một tuần. Đó là phù hợp như là một cơ sở để thử nghiệm sao lưu.
                
locate.