คำอธิบายของคำสั่ง% ใน find -printf


20
find /tmp -printf '%s %p\n' |sort -n -r | head

คำสั่งนี้ทำงานได้ดี แต่มี%s %pตัวเลือกอะไรบ้างที่นี่? มีตัวเลือกอื่น ๆ ที่สามารถใช้ได้หรือไม่?


4
ลองดู manpage ของ find
Cyrus

เป็นไปได้ที่ซ้ำกันของตำแหน่งที่จะค้นหาการอ้างอิงการจัดรูปแบบ printf?
phuclv

คำตอบ:


25

ตัวเลือก% s% p ใช้อะไรที่นี่

จากหน้าคน :

ขนาดไฟล์% sเป็นไบต์

% p ชื่อไฟล์

เลื่อนลงไปที่หน้านั้นเกินกว่าตัวอักษรปกติทั้งหมดสำหรับ printf และอ่านส่วนที่มีคำนำหน้าด้วย%

% n จำนวนฮาร์ดลิงก์ไปยังไฟล์

% p ชื่อไฟล์

ชื่อไฟล์% P ที่มีชื่อของจุดเริ่มต้นที่พบไฟล์ที่ถูกลบ

ขนาดไฟล์% sเป็นไบต์

เวลาแก้ไขล่าสุดของไฟล์% tในรูปแบบที่ส่งคืนโดยฟังก์ชัน C `ctime '

มีตัวเลือกอื่น ๆ ที่สามารถใช้ได้หรือไม่?

มี ดูลิงค์ไปยัง manpage


@don_crissti ฉันจะไม่มีทางเข้าใจว่าทำไมคนถึงชอบเอกสารเว็บแบบสุ่มถึงเอกสารที่ติดตั้งในระบบของพวกเขา
Kusalananda

1
@ Kusalananda - ดีฉันสามารถนึกถึงสถานการณ์หนึ่งที่ผู้คนจะมีลิงค์ไปยังหน้าเว็บแทนที่จะอ้างจากเอกสารที่ติดตั้งในระบบของพวกเขา: พวกเขาไม่ได้อยู่ในเครื่องลินุกซ์ในขณะที่เขียนโพสต์ .. อย่างไรก็ตามลิงก์ควรชี้ (imo) ไปยังเอกสารอย่างเป็นทางการ (ดังนั้นความคิดเห็นของฉันด้านบนซึ่งด้วยเหตุผลที่ไม่ทราบสาเหตุถูกลบโดย mods ... ) นอกจากนั้นฉันเห็นด้วยกับคุณอย่างเต็มที่: OP ควรศึกษาหน้าคู่มือที่ติดตั้งบนระบบของพวกเขา
don_crissti

2
@don_crissti หรือพวกเขาอยู่บนเซิร์ฟเวอร์ที่ไม่มี manpages ติดตั้งซึ่งค่อนข้างบ่อย
runlevel0

หน้าคู่มือของฉันมักจะมาจาก FreeBSD ถ้าฉันไม่ได้มี Linux VM อยู่ในมือ และฉันก็รู้สึกว่าคำถามส่วนใหญ่เป็นแบบ GNU / Linux
Hennes

3
ฉันควรเพิ่มสิ่งนั้นนอกเหนือจากการส่งออก man man ที่ล้นหลามและไม่น่าเชื่อถือสำหรับผู้ใช้ที่ไม่มีประสบการณ์ในฐานะโปรแกรมเมอร์ / ผู้ใช้ระดับสูงฉันมักจะมองหาวิธีการใหม่ ๆ ที่ man page ไม่ครอบคลุม ตัวอย่างเช่น (ตอนนี้) รูปแบบวันที่เฉพาะสำหรับเอาต์พุตคำสั่ง 'find' หน้าคนไม่ได้บอกให้คุณใส่ "% T" ไว้หน้าตัวแปรแต่ละตัว - อย่างน้อยก็ไม่ใช่ที่ฉันพบแม้กระทั่งมองหาสิ่งนั้นโดยเฉพาะ คุณสามารถใช้เวลาทั้งวันเพื่อหามัน (หรือเพียงแค่ให้) ในขณะที่การค้นหาใน Exchange Exchange จะให้ผลลัพธ์คำตอบที่ชัดเจนในผลลัพธ์แรก
Jim

0

Barrett 2012 พูดว่าในหน้า 74:

" -printfstring พิมพ์สตริงที่กำหนดซึ่งอาจใช้การแทนที่ในลักษณะของฟังก์ชั่นไลบรารี C printf()"

และแนะนำแน่นอน manpage สำหรับรายการตัวเลือกทั้งหมด ในขณะที่สิ่งต่าง ๆfind . -printf '%s %p\n'ได้รับการอธิบายคนอื่นไม่ได้ ได้กล่าวถึงการใช้งานของ@jim %Tโดยส่วนตัวฉันใช้สคริปต์ที่มีบรรทัดคล้ายกับfind . -printf '%T@ %p\n'โดยที่ไม่สามารถเข้าใจได้ว่า%T@มันคืออะไร ใครสามารถอ้างอิงแหล่งที่มาสำหรับตัวเลือกเหล่านี้ไม่พบใน manpages?


1
บาร์เร็ตต์คนนี้คือใคร
Kusalananda

@Kusalananda, Daniel J. Barrett, ผู้แต่ง "Linux Pocket Guide", การอ้างอิงหน้าหมายถึงรุ่นที่สอง ก่อนที่คุณจะเรียกใช้ไลบรารีโปรดทราบว่าวิธีแก้ปัญหาสำหรับคำถามนี้ไม่ใช่ปัญหาที่พบ มิฉะนั้นคำแนะนำที่ดีมาก
choklo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.