ฉันมีรายการไฟล์ที่ฉันต้องการตรวจสอบว่ามีอยู่ในระบบไฟล์ของฉันหรือไม่ ฉันคิดว่าทำสิ่งนี้โดยใช้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
มาก