วิธี `สัมผัส 'ไฟล์ซ้ำ?


40

ฉันต้องการเปลี่ยนเวลาของไฟล์ประมาณ 5000 ไฟล์

พิมพ์ดีดtouch file1.txt, touch file2.txtจะพาฉันไปตลอดกาล

มีวิธีที่จะทำบางสิ่งบางอย่างในสายของการที่touch -R *?


1
คุณหมายถึงสิ่งนี้touch file{1..3}.txtหรือไม่
Avinash Raj

2
คุณไม่ได้ระบุว่าเปลือกคุณกำลังใช้ แต่มี zsh, touch **/*มีความสะดวก
Marc Glisse

@ Marc Glisse โปรดจำไว้ว่ารายการอาร์กิวเมนต์อาจยาวเกินไป
bac0n

ในทุบตีคุณต้องตั้งค่า globstar ก่อนที่คุณจะสามารถใช้ touch **
bac0n

คำตอบ:


71

คุณสามารถใช้findคำสั่งเพื่อค้นหาไฟล์ทั้งหมดของคุณและดำเนินการtouchกับทุกไฟล์ที่พบโดยใช้-exec

find . -type f -exec touch {} +

หากคุณต้องการกรองผลลัพธ์สำหรับไฟล์ข้อความเท่านั้นคุณสามารถใช้

find . -type f -name "*.txt" -exec touch {} +

16
ฉันขอแนะนำให้ใช้เทอร์มิเนเตอร์-execของ+(แทน\;) สิ่งนี้จะโยงหลาย ๆ อาร์กิวเมนต์เข้ากับแต่ละtouchอินสแตนซ์ (สูงสุดถึงขีด จำกัด การโต้แย้งของระบบ) และจะแยกออกน้อยกว่ามาก (และอาจเร็วกว่า)
Oli


2
และสำหรับการวิ่งแบบแห้งเพียงแค่ปล่อยชิ้น-exec touch {} +ส่วนออกมาและมันจะพิมพ์ไปยังเครื่องปลายทางของคุณว่ามันจะส่งผลกระทบอะไรบ้าง
อเล็กซ์

5
ขอบคุณแม้ว่าฉันคิดว่า 'ค้นหา' หายไปพารามิเตอร์แรกของเขา find . -type f -exec touch {} +
giltsl

จะทำอย่างไรถ้าฉันต้องการเปลี่ยนเวลาในการเข้าถึงไม่ใช่เวลาที่แก้ไขเท่านั้น ควรเป็น "find -type f -exec touch -a {} +" หรือไม่
weeo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.