คำถามติดแท็ก find

สำหรับคำถามที่เกี่ยวข้องกับการค้นหายูทิลิตีบรรทัดคำสั่งเพื่อค้นหาไฟล์ในลำดับชั้นไดเรกทอรี ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการค้นหาตัวเองหรือคำถามเกี่ยวกับปัญหาที่เกิดขึ้นจากการใช้ยูทิลิตี้ค้นหาบรรทัดคำสั่ง

11
จัดเรียงไฟล์ตามขนาดที่เรียกซ้ำ
ฉันต้องการค้นหาไฟล์ที่ใหญ่ที่สุดในโฟลเดอร์ ฉันจะสแกนโฟลเดอร์ซ้ำและเรียงลำดับเนื้อหาตามขนาดได้อย่างไร ฉันได้ลองใช้ls -R -Sแต่มันแสดงรายการไดเรกทอรีเช่นกัน ฉันก็ลองใช้findดู
78 command-line  find  ls 

4
เรียงลำดับผลลัพธ์ของ“ ค้นหา” หรือไม่
ฉันต้องสามารถเรียงลำดับเอาต์พุตตามตัวอักษรfindก่อนที่จะไพพ์ไปยังคำสั่ง การเข้า| sort |ระหว่างไม่ทำงานฉันควรทำอย่างไร find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
77 shell  find  sort  xargs 

2
`find` ด้วยหลาย` -name 'และ `-exec` รันเฉพาะการจับคู่สุดท้ายของ` -name'
เมื่อฉันใช้ find . -type f -name "*.htm*" -o -name "*.js*" -o -name "*.txt" พบไฟล์ทุกประเภท แต่เมื่อฉันเพิ่ม-execในตอนท้าย: find . -type f -name "*.htm*" -o -name "*.js*" -o -name "*.txt" -exec sh -c 'echo "$0"' {} \; ดูเหมือนว่าจะพิมพ์.txtไฟล์เท่านั้น ผมทำอะไรผิดหรือเปล่า? หมายเหตุ: ใช้ MINGW (Git Bash)
74 find 

4
Recursive grep vs find / -type f -exec grep {} \; ข้อใดมีประสิทธิภาพมากขึ้น / เร็วขึ้น?
ไฟล์ใดที่มีประสิทธิภาพมากกว่าสำหรับการค้นหาไฟล์ในระบบไฟล์ทั้งหมดที่มีสตริง: grep แบบเรียกซ้ำหรือค้นหาด้วย grep ในคำสั่ง exec? ฉันคิดว่าการค้นหาจะมีประสิทธิภาพมากขึ้นเพราะอย่างน้อยคุณสามารถทำการกรองบางอย่างได้ถ้าคุณรู้จักนามสกุลไฟล์หรือ regex ที่ตรงกับชื่อไฟล์ แต่เมื่อคุณรู้ว่าตัว-type fไหนดีกว่า greu GNU 2.6.3; find (GNU findutils) 4.4.2 ตัวอย่าง: grep -r -i 'the brown dog' / find / -type f -exec grep -i 'the brown dog' {} \;
70 grep  find 


3
ทำไมการค้นหาของฉันจึงไม่เกิดซ้ำ
ฉันใช้คำสั่งต่อไปนี้ แต่ไม่ได้เรียกซ้ำ: find . -name *.java ฉันรู้ว่ามีไฟล์ java อยู่ข้างล่างในไดเรกทอรีปัจจุบัน แต่กำลังทำงานfindในไดเรกทอรีปัจจุบันเท่านั้น ฉันใช้ OS X, 10.9
65 shell  find  wildcards 

4
ฉันจะ grep ผลลัพธ์ของ FIND โดยใช้ -EXEC และยังส่งออกไปยังไฟล์ได้อย่างไร?
ดีกว่าที่จะอธิบายในตัวอย่าง ฉันสามารถ: find . -name "*.py" -type f > output.txt แต่ฉันจะเก็บเอาท์พุทเป็นไฟล์เดียวกันได้อย่างไร: find . -name "*.py" -type f -exec grep "something" {} \ ฉันไม่สามารถทำได้ find . -name "*.py" -type f -exec grep "something" {} \ > output.txt
64 find 

6
วิธีการรวมคำสั่ง mv หลังจากค้นหาคำสั่ง?
ฉันกำลังค้นหาไฟล์ที่ชื่อซึ่งมีAAAอยู่ในเส้นทางของพวกเขาโดยใช้คำสั่งต่อไปนี้: find path_A -name "*AAA*" path_Bได้รับการส่งออกพบว่าโดยคำสั่งดังกล่าวผมต้องการที่จะย้ายไฟล์เหล่านั้นเข้ามาในเส้นทางอื่นพูด แทนที่จะย้ายไฟล์เหล่านั้นทีละหนึ่งฉันสามารถเพิ่มประสิทธิภาพคำสั่งโดยการย้ายไฟล์เหล่านั้นทันทีหลังจากคำสั่งค้นหา?
61 files  find  mv 

1
การทำความเข้าใจกับตัวเลือก -exec ของ `find '
ฉันพบว่าตัวเองกำลังค้นหาไวยากรณ์ของ find . -name "FILENAME" -exec rm {} \; ส่วนใหญ่เป็นเพราะฉันไม่เห็นว่า-execชิ้นส่วนทำงานอย่างไร เครื่องหมายวงเล็บคือเครื่องหมายแบ็กสแลชและเครื่องหมายอัฒภาคคืออะไร มีกรณีการใช้งานอื่นสำหรับไวยากรณ์นั้นหรือไม่
53 shell  find 

2
Bash: วิธีอ่านทีละหนึ่งบรรทัดจากเอาต์พุตของคำสั่ง?
while loopฉันพยายามที่จะอ่านผลลัพธ์ของคำสั่งในทุบตีใช้ที่ while read -r line do echo "$line" done <<< $(find . -type f) ผลลัพธ์ที่ฉันได้รับ ranveer@ranveer:~/tmp$ bash test.sh ./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello ranveer@ranveer:~/tmp$ หลังจากนี้ฉันก็ลอง $(find . -type f) | while read -r line do echo "$line" done test.sh: line 5: ./test.py: Permission deniedแต่มันก็สร้างข้อผิดพลาด ดังนั้นฉันจะอ่านทีละบรรทัดได้อย่างไรเพราะฉันคิดว่าขณะนี้มันกำลังซัดทั้งบรรทัดในครั้งเดียว เอาต์พุตที่ต้องการ: ./test.py …
49 bash  shell  find  pipe 

5
ฉันจะรันคำสั่งเฉพาะสำหรับผลลัพธ์การค้นหาแต่ละรายการได้อย่างไร
หนึ่งจะรันคำสั่งเฉพาะสำหรับแต่ละไฟล์ที่พบโดยใช้findคำสั่งได้อย่างไร findสำหรับวัตถุประสงค์ของคำถามช่วยบอกว่าผมเพียงต้องการที่จะลบแต่ละไฟล์พบโดย

5
รับขนาดด้วยไฟล์ du เท่านั้น
ฉันจะรับขนาดของไฟล์ทั้งหมดและไฟล์ทั้งหมดในไดเรกทอรีย่อยโดยใช้คำสั่ง du ได้อย่างไร ฉันพยายามใช้คำสั่งต่อไปนี้เพื่อให้ได้ขนาดของไฟล์ทั้งหมด (และไฟล์ในไดเรกทอรีย่อย) find . -type f | du -a แต่นี่จะพิมพ์ขนาดโฟลเดอร์เช่นกัน ฉันจะรับรายการขนาดไฟล์และไฟล์ทั้งหมดในไดเรกทอรีย่อยได้อย่างไร ฉันยังพยายามexec flagแต่ผมไม่แน่ใจว่าจะเข้ามาในท่อส่งออกคำสั่งอื่นหลังจากที่มันรันผลของการเข้าสู่finddu ระบบปฏิบัติการคือ AIX 6.1 ที่มี ksh เชลล์
49 files  find  disk-usage  aix  ksh 


1
ทำไม GNU ถึงพบว่ารวดเร็วเมื่อเปรียบเทียบกับเครื่องมือค้นหาไฟล์กราฟิก?
ฉันพยายามค้นหาไฟล์ที่ไม่มีอยู่ในโฮมไดเรกทอรีของฉันและไดเรกทอรีย่อยทั้งหมด find ~/ -name "bogus"ให้ข้อมูลแก่ฉันหลังจากนั้นไม่กี่วินาที แต่ตัวจัดการdolphinไฟล์ของ KDEต้องการเวลาเกือบ 3 นาทีในการทำเช่นเดียวกัน สอดคล้องกับที่มีประสบการณ์ก่อนหน้านี้ของฉันกับGNOMEbeagle การfindจัดการที่จะทำอย่างรวดเร็วเหมือนกันในขณะที่การค้นหากราฟิก (ซึ่งใช้งานง่ายกว่าพารามิเตอร์ commandline) ทากอยู่เบื้องหลัง?

3
วิธีค้นหาไบนารีที่ปฏิบัติการได้ทั้งหมดในไดเรกทอรีซ้ำ?
ถ้าฉันใช้findคำสั่งเช่นนี้: find /mydir/mysubdir -executable -type f ไฟล์ที่สามารถเรียกทำงานได้ทั้งหมดจะแสดงรายการ (ไม่รวมไดเรกทอรี) และรวมถึงไฟล์สคริปต์ที่สามารถใช้งานได้ (เช่น script.sh เป็นต้น) สิ่งที่ฉันต้องการจะทำคือรายการไฟล์ปฏิบัติการไบนารีเท่านั้น
46 files  find  binary 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.