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

แท็กนี้มีความหมายหลายอย่าง โปรดอย่าใช้แท็กนี้หากคุณพยายามหาบางอย่าง

6
ฉันจะค้นหา symlink ทั้งหมดในแผนผังทรีได้อย่างไร
ฉันพยายามค้นหา symlink ทั้งหมดภายในแผนผังไดเรกทอรีสำหรับเว็บไซต์ของฉัน ฉันรู้ว่าฉันสามารถใช้findทำสิ่งนี้ แต่ฉันไม่สามารถหาวิธีตรวจสอบไดเรกทอรีซ้ำ ๆ ฉันได้ลองคำสั่งนี้แล้ว: find /var/www/ -type l …และต่อมาฉันค้นพบว่าเนื้อหาใน/var/wwwนั้นเป็น symlink ดังนั้นฉันจึงเปลี่ยนคำสั่งเป็น: find -L /var/www/ -type l ต้องใช้เวลาสักพัก แต่ฉันก็ไม่ทัน ฉันจะรับสิ่งนี้เพื่อตรวจสอบไดเรกทอรีย่อยได้อย่างไร
255 bash  find  symlink 

9
จะใช้ 'ค้นหา' เพื่อค้นหาไฟล์ที่สร้างในวันที่ระบุได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันจะใช้คำสั่ง UNIX findเพื่อค้นหาไฟล์ที่สร้างในวันที่ระบุได้อย่างไร
254 bash  unix  find 

12
ทำให้ xargs จัดการกับชื่อไฟล์ที่มีช่องว่าง
$ ls *mp3 | xargs mplayer Playing Lemon. File not found: 'Lemon' Playing Tree.mp3. File not found: 'Tree.mp3' Exiting... (End of file) คำสั่งของฉันล้มเหลวเนื่องจากไฟล์ "Lemon Tree.mp3" มีช่องว่างดังนั้น xargs จึงคิดว่าเป็นสองไฟล์ ฉันสามารถค้นหา + xargs ใช้งานชื่อไฟล์ได้ไหม
252 shell  find  xargs 

6
วิธีตรวจสอบว่ามีค่าอยู่ในพจนานุกรม (หลาม) หรือไม่
ฉันมีพจนานุกรมต่อไปนี้ในหลาม: d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'} ฉันต้องการวิธีค้นหาว่ามีค่าเช่น "หนึ่ง" หรือ "สอง" อยู่ในพจนานุกรมนี้หรือไม่ ตัวอย่างเช่นหากฉันต้องการทราบว่ามีดัชนี "1" อยู่หรือไม่ฉันจะต้องพิมพ์: "1" in d แล้วหลามก็จะบอกฉันว่ามันเป็นเรื่องจริงหรือเท็จ แต่ฉันต้องทำสิ่งที่แน่นอนแบบเดียวกันยกเว้นเพื่อค้นหาว่ามีค่าอยู่หรือไม่
251 python  dictionary  find 

6
Chmod ซ้ำ
ฉันมีไฟล์เก็บถาวรซึ่งถูกเก็บถาวรโดยบุคคลอื่นและฉันต้องการโดยอัตโนมัติหลังจากฉันดาวน์โหลดเพื่อเปลี่ยนสาขาของระบบไฟล์ภายในไฟล์ที่แตกแล้วเพื่อให้สามารถเข้าถึงการอ่านได้ (ฉันไม่สามารถเปลี่ยนวิธีการสร้างที่เก็บถาวรได้) ฉันได้ดูในหัวข้อนี้: chmod: วิธีการเพิ่มสิทธิ์ดำเนินการซ้ำเฉพาะไฟล์ที่มีสิทธิ์ดำเนินการแล้วเป็นบางคนอื่น ๆ แต่ไม่มีความสุข ไดเรกทอรีมาพร้อมกับหลาย ๆ แต่ผิดธงทั้งหมดอาจปรากฏเป็น: drwx------ d---r-x--- drwxrwxr-x dr--r-xr-- นี่เป็นเพียงส่วนน้อยที่ฉันค้นพบ แต่อาจมากกว่านี้ findข้อผิดพลาดเมื่อพยายามที่จะมองเข้าไปในไดเรกทอรีที่ไม่มีได้รับอนุญาตและไม่ได้ผ่านไปx chmodสิ่งที่ฉันได้ทำไปแล้วคือการเปลี่ยนการอนุญาตในไดเรกทอรีหลักด้วยตนเองจากนั้นไปที่ไดเรกทอรีย่อยและทำเช่นเดียวกันสำหรับพวกเขาและอื่น ๆ แต่นี่เป็นแรงงานมือจำนวนมาก มีวิธีการทำสิ่งนี้โดยอัตโนมัติหรือไม่? นั่นเป็นวิธีที่ฉันทำตอนนี้: ทำ: $ chmod -R +x $ chmod -R +r จนกว่าฉันจะไม่ได้รับข้อผิดพลาดแล้ว $ find -type f -exec chmod -x {} + แต่ต้องมีวิธีที่ดีกว่า
249 linux  shell  find  chmod 

3
ค้นหาโดยไม่ต้องเรียกซ้ำ
เป็นไปได้หรือไม่ที่จะใช้findคำสั่งในวิธีการที่มันจะไม่หักเงินคืนในไดเรกทอรีย่อย? ตัวอย่างเช่น, DirsRoot |-->SubDir1 | |-OtherFile1 |-->SubDir2 | |-OtherFile2 |-File1 |-File2 และผลลัพธ์ของบางสิ่งบางอย่างfind DirsRoot --donotrecuourse -type fจะเป็นเช่นไรFile1, File2?
246 unix  find  shell 

20
วิธีการวนซ้ำไฟล์ที่ถูกแก้ไขล่าสุดในไดเรกทอรีซ้ำ?
ดูเหมือนว่าlsจะไม่เรียงลำดับไฟล์อย่างถูกต้องเมื่อทำการโทรซ้ำ: ls -altR . | head -n 3 ฉันจะค้นหาไฟล์ที่แก้ไขล่าสุดในไดเรกทอรี (รวมถึงไดเรกทอรีย่อย) ได้อย่างไร
242 bash  filesystems  find 

11
วิธีที่รวดเร็วในการค้นหาบรรทัดในไฟล์หนึ่งที่ไม่ได้อยู่ในอีก?
ฉันมีไฟล์ขนาดใหญ่สองไฟล์ (ชุดชื่อไฟล์) ประมาณ 30,000 บรรทัดในแต่ละไฟล์ ฉันพยายามค้นหาวิธีที่รวดเร็วในการค้นหาบรรทัดใน file1 ที่ไม่ปรากฏใน file2 ตัวอย่างเช่นถ้านี่คือ file1: line1 line2 line3 และนี่คือ file2: line1 line4 line5 ดังนั้นผลลัพธ์ / ผลลัพธ์ของฉันควรเป็น: line2 line3 งานนี้: grep -v -f file2 file1 แต่มันช้ามากเมื่อใช้กับไฟล์ขนาดใหญ่ของฉัน ฉันสงสัยว่ามีวิธีที่ดีในการทำเช่นนี้โดยใช้ diff () แต่ผลลัพธ์ควรเป็นเพียงแค่เส้นไม่มีอะไรอื่นและฉันไม่สามารถหาสวิตช์ได้ ใครช่วยฉันหาวิธีที่รวดเร็วในการทำเช่นนี้โดยใช้ทุบตีและไบนารีลินุกซ์ขั้นพื้นฐาน? แก้ไข: เพื่อติดตามคำถามของฉันนี้เป็นวิธีที่ดีที่สุดที่ฉันได้พบโดยใช้ diff (): diff file2 file1 | grep '^>' | sed 's/^>\ //' …
241 bash  grep  find  diff 

6
“ find: พา ธ ต้องนำหน้านิพจน์:” ฉันจะระบุการค้นหาแบบเรียกซ้ำที่ค้นหาไฟล์ในไดเรกทอรีปัจจุบันได้อย่างไร
ฉันมีปัญหาในการค้นหาเพื่อค้นหาการจับคู่ในไดเรกทอรีปัจจุบันเช่นเดียวกับไดเรกทอรีย่อย เมื่อฉันเรียกใช้find *test.cจะให้เฉพาะรายการที่ตรงกันในไดเรกทอรีปัจจุบัน (ไม่ดูในไดเรกทอรีย่อย) หากฉันลองfind . -name *test.cฉันจะคาดหวังผลลัพธ์เดียวกัน แต่จะให้เฉพาะการจับคู่ที่อยู่ในไดเรกทอรีย่อยแทน เมื่อมีไฟล์ที่ควรจะตรงกับในไดเร็คทอรี่สำหรับใช้ทำงานมันจะทำให้ฉัน:find: paths must precede expression: mytest.c ข้อผิดพลาดนี้หมายถึงอะไรและฉันจะได้รับการแข่งขันจากทั้งไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยได้อย่างไร
235 linux  bash  find 

3
grep โดยไม่แสดงพา ธ / ไฟล์: line
คุณ grep และส่งคืนบรรทัดที่ตรงกันได้อย่างไร ie เส้นทาง / ชื่อไฟล์ถูกตัดออกจากผลลัพธ์ ในกรณีนี้ฉันต้องการค้นหาไฟล์. bar ทั้งหมดในไดเรกทอรีปัจจุบันค้นหาคำว่า FOO find . -name '*.bar' -exec grep -Hn FOO {} \;
234 linux  unix  grep  find 

19
ฉันจะหา `find 'เพื่อละเว้นไดเรกทอรี. svn ได้อย่างไร
ฉันมักจะใช้findคำสั่งเพื่อค้นหาผ่านซอร์สโค้ดลบไฟล์อะไรก็ตาม น่ารำคาญเพราะการโค่นล้มเก็บข้อมูลที่ซ้ำกันของแต่ละไฟล์ใน.svn/text-base/ไดเรกทอรีการค้นหาที่เรียบง่ายของฉันจบลงด้วยการได้รับผลลัพธ์ซ้ำซ้อนมากมาย ตัวอย่างเช่นฉันต้องการค้นหาแบบซ้ำuintหลายครั้งmessages.hและหลายmessages.cppไฟล์: # find -name 'messages.*' -exec grep -Iw uint {} + ./messages.cpp: Log::verbose << "Discarding out of date message: id " << uint(olderMessage.id) ./messages.cpp: Log::verbose << "Added to send queue: " << *message << ": id " << uint(preparedMessage->id) ./messages.cpp: Log::error << "Received message with invalid SHA-1 hash: …
227 linux  find  bash  grep  svn 

13
วิธีการวนซ้ำชื่อไฟล์ที่ส่งคืนโดย find
x=$(find . -name "*.txt") echo $x ถ้าฉันเรียกใช้โค้ดข้างบนใน Bash shell สิ่งที่ฉันได้รับคือสตริงที่มีชื่อไฟล์หลายชื่อคั่นด้วยช่องว่างไม่ใช่รายการ แน่นอนฉันสามารถแยกพวกมันออกจากกันเพื่อให้ได้รายการ แต่ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำรายการ ดังนั้นวิธีที่ดีที่สุดในการวนลูปผ่านผลลัพธ์ของfindคำสั่งคืออะไร
223 bash  find 

10
จะใช้ตัวเลือก '-prune' ของ 'find' in sh ได้อย่างไร?
ฉันไม่เข้าใจตัวอย่างที่ได้รับจากman findใครทุกคนสามารถยกตัวอย่างและคำอธิบายให้ฉันได้บ้าง ฉันสามารถรวมการแสดงออกปกติในนั้นได้หรือไม่? คำถามที่มีรายละเอียดมากขึ้นเป็นเช่นนี้: เขียนเชลล์สคริปต์changeallซึ่งมีอินเตอร์เฟสเหมือนchangeall [-r|-R] "string1" "string2"กัน ก็จะพบไฟล์ทั้งหมดที่มีคำต่อท้ายของ.h, .C, .ccหรือ.cppและการเปลี่ยนแปลงที่เกิดขึ้นทั้งหมดให้กับstring1 เป็นตัวเลือกสำหรับการพักใน dir ปัจจุบันเท่านั้นหรือรวมถึง subdir'sstring2-r บันทึก: สำหรับกรณีที่ไม่ซ้ำlsไม่ได้รับอนุญาตเท่านั้นที่เราสามารถใช้และfindsed ฉันพยายามแล้วfind -depthแต่ไม่รองรับ นั่นเป็นเหตุผลที่ผมสงสัยว่าถ้า-pruneจะช่วย man findแต่ไม่เข้าใจตัวอย่างจาก แก้ไข 2: ฉันทำงานที่ได้รับมอบหมายฉันไม่ได้ถามคำถามอย่างละเอียดเพราะฉันต้องการทำมันให้เสร็จ ตั้งแต่ฉันทำไปแล้วส่งตอนนี้ฉันสามารถตอบคำถามทั้งหมดได้ นอกจากนี้ฉันจัดการจนเสร็จสิ้นการมอบหมายโดยไม่ใช้-pruneแต่ต้องการเรียนรู้ต่อไป
219 regex  shell  find  manual 

8
ค้นหาชื่อไฟล์ที่ไม่ได้ลงท้ายด้วยส่วนขยายเฉพาะบน Unix หรือไม่
มีวิธีง่ายๆในการค้นหาไฟล์ทั้งหมดซ้ำในลำดับชั้นไดเรกทอรีซ้ำซึ่งไม่ได้จบในรายการส่วนขยายหรือไม่? เช่นไฟล์ทั้งหมดที่ไม่ใช่ * .dll หรือ * .exe ค้นหา UNIX / GNU ที่ทรงพลังเหมือนไม่มีexcludeโหมด (หรือฉันพลาด) และฉันมักจะพบว่ามันยากที่จะใช้นิพจน์ทั่วไปเพื่อค้นหาสิ่งที่ไม่ตรงกับนิพจน์เฉพาะ . ฉันอยู่ในสภาพแวดล้อม Windows (ใช้พอร์ตGnuWin32ของเครื่องมือ GNU ส่วนใหญ่) ดังนั้นฉันจึงเปิดกว้างสำหรับโซลูชันที่ใช้ Windows เท่านั้น
207 command-line  find 

10
find: อาร์กิวเมนต์ที่ขาดหายไปถึง -exec
ฉันได้รับความช่วยเหลือในวันนี้ด้วยคำสั่ง แต่ดูเหมือนจะไม่ทำงาน นี่คือคำสั่ง: find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 && rm {}\; เชลล์ส่งคืน find: missing argument to `-exec' สิ่งที่ฉันพยายามทำโดยทั่วไปคือไปที่ไดเรกทอรีซ้ำ (ถ้ามีไดเรกทอรีอื่น) และเรียกใช้คำสั่ง ffmpeg กับ.rmประเภทไฟล์และแปลงเป็น.mp3ประเภทไฟล์ เมื่อเสร็จแล้วให้ลบ.rmไฟล์ที่เพิ่งถูกแปลง ฉันขอขอบคุณความช่วยเหลือในเรื่องนี้
206 bash  shell  find  arguments  exec 

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