ภายในไดเรกทอรี ~ / docs ของฉันฉันต้องการ "สัมผัส" ไฟล์ทั้งหมดที่ลงท้ายด้วย. txt
ฉันจะทำสิ่งนี้ได้อย่างไร
ภายในไดเรกทอรี ~ / docs ของฉันฉันต้องการ "สัมผัส" ไฟล์ทั้งหมดที่ลงท้ายด้วย. txt
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
ด้วยfind:
find ~/docs -name "*.txt" -exec touch {} \;
~/docsnameตัวเลือกที่จะตรงกับทุกtxtไฟล์ - execจะรันคำสั่งtouchที่ชื่อไฟล์ซึ่งถูกแทนที่ใน{}\;สิ้นสุดคำสั่งและtouchจะถูกเรียกหนึ่งครั้งสำหรับแต่ละไฟล์ที่พบบันทึก:
\+ในตอนท้ายสร้างคำสั่งเดียวเพื่อให้ทำงานtouchกับไฟล์เหล่านี้ทั้งหมดในครั้งเดียว สิ่งนี้ไม่สามารถทำได้กับคำสั่งทั้งหมด แต่สามารถใช้งานได้touchและช่วยให้คุณโทรได้ไม่กี่ครั้งหากคุณมีไฟล์จำนวนมากที่ได้รับผลกระทบ
{} \+จะดีกว่าที่นี่ ...touchสามารถจัดการชื่อไฟล์จำนวนมากในบรรทัดคำสั่งของมันดังนั้นตัวอย่างกับ 10,000 ไฟล์และ{} \;10,000 การโทรจะทำtouch... การใช้{} \+จะโทรtouchเพียงครั้งเดียว (ขึ้นอยู่กับหน่วยความจำที่มีอยู่) ... ที่นี่ ตัดตอนมาจากการค้นหาของ-exec command {} + ... The command line is built in much the same way that xargs builds its command linesมนุษย์หน้านี้: มีรายละเอียดเพิ่มเติมในman findเอกสารประกอบ