ฉันมีรายการไฟล์ที่ฉันต้องการตรวจสอบว่ามีอยู่ในระบบไฟล์ของฉันหรือไม่ ฉันคิดว่าทำสิ่งนี้โดยใช้findใน:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(ใช้zsh) แต่วิธีนี้ใช้ไม่ได้ผลเนื่องจากfindดูเหมือนว่าจะออกจาก0หรือไม่พบไฟล์ ฉันเดาว่าฉันสามารถผ่านการทดสอบอื่น ๆ ซึ่งการทดสอบเพื่อดูว่าfindผลิตผลใด ๆ (ดิบ แต่มีประสิทธิภาพจะแทนที่> /dev/nullด้วย|grep '') แต่รู้สึกเหมือนใช้โทรลล์เพื่อจับแพะ (เชื้อชาติอื่น ๆ อาจพูดอะไรเกี่ยวกับ )
มีวิธีที่จะบีบบังคับfindให้มูลค่าการออกที่เป็นประโยชน์หรือไม่? หรืออย่างน้อยก็เพื่อรับรายการไฟล์ที่ไม่พบ? (ฉันสามารถจินตนาการได้ว่าบางทีอาจจะง่ายกว่านี้ด้วยตัวเลือกที่ชาญฉลาดของการเชื่อมต่อแบบลอจิคัล แต่ฉันดูเหมือนจะผูกปมเสมอเมื่อฉันพยายามคิดออก)
ความเป็นมา / แรงจูงใจ:ฉันมีข้อมูลสำรอง "หลัก" และฉันต้องการตรวจสอบว่ามีไฟล์บางไฟล์ในเครื่องท้องถิ่นของฉันอยู่ในข้อมูลสำรองหลักของฉันก่อนที่จะลบออก (เพื่อสร้างพื้นที่ว่างเล็กน้อย) ดังนั้นฉันจึงสร้างรายชื่อไฟล์sshแก้ไขมันไปยังเครื่องต้นแบบและจากนั้นก็เกิดความสูญเสียในการหาวิธีที่ดีที่สุดในการค้นหาไฟล์ที่หายไป
locateไม่แสดงสถานะปัจจุบันของระบบไฟล์อาจเป็นวันหรือแม้แต่เป็นสัปดาห์ เหมาะสำหรับใช้เป็นฐานในการทดสอบการสำรองข้อมูล
locateมาก