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 find
như trong:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(sử dụng zsh
) nhưng điều đó find
dường như không hoạt động để thoát khỏi 0
việ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ó find
tạo ra bất kỳ đầu ra nào không (thô nhưng hiệu quả sẽ thay thế > /dev/null
bằ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 ssh
chú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.
locate
khô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
.