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

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

2
ค้นหาการใช้งานด้วย -L
ฉันมี link -> file ฉันทำ find -L . -name 'link' และรับ ./link ทำไมถึงเป็นอย่างนั้น? คนค้นหาพูดว่า: -L: ทำตามลิงก์สัญลักษณ์ เมื่อพบการตรวจสอบหรือพิมพ์ข้อมูลเกี่ยวกับไฟล์ข้อมูลที่นำมาใช้จะต้องนำมาจากคุณสมบัติของไฟล์ที่จุดเชื่อมโยงไม่ใช่จากลิงค์ตัวเอง (เว้นแต่จะเป็นลิงก์สัญลักษณ์แบบย่อหรือค้นหาไม่สามารถตรวจสอบไฟล์ได้ จุดเชื่อมโยง)
34 find  symlink 


9
เปิดไฟล์ที่กำหนดโดยผลลัพธ์ของคำสั่งเป็นกลุ่ม
ฉันพบว่าตัวเองทำสิ่งต่อไปนี้เกือบทุกวัน เรียกใช้การค้นหา ( find -name somefile.txt) เปิดผลลัพธ์ vim ปัญหาคือฉันต้องคัดลอกและวางผลลัพธ์ของการfindลงในvimคำสั่ง มีวิธีหลีกเลี่ยงการทำเช่นนี้หรือไม่? ฉันได้ทดลองเล็กน้อย ( find -name somefile.txt | vim) แต่ไม่พบสิ่งใดที่ใช้งานได้ ขอบคุณล่วงหน้า
34 linux  bash  vim  find 

3
รายการของไฟล์ที่แก้ไขล่าสุด
ฉันจะดูรายการไฟล์ทั้งหมดที่ถูกแก้ไขได้อย่างไรพูดเมื่อ 3 เดือนที่แล้ว ฉันตรวจสอบคำถามนี้แต่ฉันไม่สามารถนำไปใช้กับสถานการณ์ของฉันได้ ฉันลองตอนนี้ดูเหมือนว่าจะทำงานได้ แต่ฉันรู้ว่าควรมีวิธีที่ดีกว่าในการใช้การค้นหา ls -ltR | grep -v '2011-05' | grep -v '2011-06' | grep -v '2011-07' | grep -v '2011-08
33 files  find  ls  date 

3
ลบไฟล์และไดเรกทอรีด้วยชื่อ ไม่พบไฟล์หรือโฟลเดอร์ที่คุณค้นหา
ฉันต้องการลบข้อมูลที่รวบรวมทั้งหมด: ไดเรกทอรีที่เรียกว่าbuild, ไดเรกทอรีที่เรียกว่าobj, ไฟล์ * .so ฉันเขียนคำสั่ง find \( -name build -o -name obj -o -name *.so \) -exec rm -rf {} \; ที่ผ่านไดเรกทอรีทั้งหมดซ้ำและลบทั้งหมดที่ฉันต้องการ ทำไมฉันถึงมีผลลัพธ์เช่นนี้ในตอนท้าย? บางทีฉันควรเขียนคำสั่งอื่น find: `./3/obj': No such file or directory find: `./3/build': No such file or directory find: `./1/obj': No such file or directory find: `./1/build': No …
32 find  rm  recursive 

4
find -exec + vs find | xargs: อันไหนให้เลือก?
ผมเข้าใจว่า-execสามารถใช้ตัวเลือกในการเลียนแบบพฤติกรรมของ+ xargsมีสถานการณ์ใดบ้างที่คุณต้องการให้ฟอร์มหนึ่งเหนืออีกฟอร์มหนึ่ง? ฉันมักจะชอบแบบฟอร์มแรกถ้าเพียงเพื่อหลีกเลี่ยงการใช้ท่อ ฉันคิดว่านักพัฒนาของfindต้องทำการเพิ่มประสิทธิภาพที่เหมาะสม ฉันถูกไหม?
32 bash  find  pipe  xargs 

3
ฉันจะใช้คำสั่ง bash สองคำสั่งใน -exec ของคำสั่ง find ได้อย่างไร
เป็นไปได้หรือไม่ที่จะใช้ 2 คำสั่งใน-execส่วนของfindคำสั่ง? ฉันลองทำสิ่งที่ชอบแล้ว: find . -name "*" -exec chgrp -v new_group {} ; chmod -v 770 {} \; และฉันได้รับ: ค้นหา: อาร์กิวเมนต์ที่หายไปไปยัง -exec chmod: ไม่สามารถเข้าถึง {}: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว chmod: ไม่สามารถเข้าถึงได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
32 bash  find 

2
find -delete ไม่ได้ลบไดเรกทอรีที่ไม่ว่างเปล่า
คำสั่ง $ find ~ -name .DS_Store -ls -delete ใช้งานได้กับ Mac OS X แต่ $ find ~ -name __pycache__ -type d -ls -delete ไม่พบ - พบไดเร็กทอรี แต่ไม่ถูกลบ ทำไม? PS ฉันรู้ว่าฉันสามารถทำ $ find ~ -name __pycache__ -type d -ls -exec rm -rv {} + คำถามคือว่าทำไม find -deleteไม่ได้ทำงาน
32 find  osx 

2
ลบรูปแบบไฟล์ที่ตรงกัน
ฉันจำเป็นต้องลบไฟล์ทั้งหมดซ้ำในโฟลเดอร์ย่อยทั้งหมดที่ชื่อไฟล์มีหมายเลขตามด้วย 'x' ตามด้วยหมายเลขอย่างน้อยสองครั้ง ตัวอย่าง: ฉันต้องการลบไฟล์เหล่านี้: 'aaa-12x123-123x12.jpg' 'aaa-12x12-123x12-12x123.jpg' แต่ฉันไม่ต้องการลบไฟล์เหล่านี้: 'aaa.jpg' 'aaa-12x12.jpg' 'aaaxaaa-123x123.jpg' 'aaaxaaa-aaaxaaa.jpg' ฉันจะทำสิ่งนั้นได้อย่างไร (จาก bash shell)
32 bash  files  find  wildcards 

2
ค้นหา (1): สัญลักษณ์ตัวแทนของดาวมีการใช้งานอย่างไรเพื่อให้ล้มเหลวในชื่อไฟล์บางส่วน
ในระบบไฟล์ที่ชื่อไฟล์อยู่ใน UTF-8 ฉันมีไฟล์ที่มีชื่อผิดพลาด มันจะแสดงเป็น: D�sinstaller, ชื่อจริงตาม zsh D$'\351'sinstaller:, Latin1 สำหรับDésinstaller, ตัวเองป่าเถื่อนฝรั่งเศสสำหรับ "ถอนการติดตั้ง" Zsh จะไม่เข้าคู่กับมัน[[ $file =~ '^.*$' ]]แต่จะจับคู่กับก้อนกลม*- นี่คือพฤติกรรมที่ฉันคาดหวัง ตอนนี้ฉันยังคงคาดหวังว่าจะพบมันเมื่อทำงานfind . -name '*'- ในความเป็นจริงฉันไม่เคยคาดหวังว่าชื่อไฟล์จะล้มเหลวในการทดสอบนี้ อย่างไรก็ตามด้วยLANG=en_US.utf8ไฟล์ไม่ปรากฏขึ้นและฉันต้องตั้งค่าLANG=C(หรือen_USหรือ'') เพื่อให้มันทำงาน คำถาม: การดำเนินการที่อยู่เบื้องหลังคืออะไรและฉันจะคาดการณ์ผลลัพธ์ได้อย่างไร ข้อมูล: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2

6
ทางเลือกที่จะหา? [ปิด]
มีfindโปรแกรมอื่นที่มีอินเตอร์เฟส CLI แบบเดิมหรือไม่? findทำงานและคาดหวังว่าพารามิเตอร์ในวิธีที่แตกต่างอย่างเจ็บปวดจากอุปกรณ์อื่น ๆ ส่วนใหญ่ ชี้แจง: ฉันกำลังมองหาโปรแกรมที่มีฟังก์ชั่นส่วนใหญ่เหมือนกับค้นหาด้วยอินเตอร์เฟสบรรทัดคำสั่งที่ทำงานและให้ความรู้สึกเหมือนคำแนะนำบรรทัดคำสั่ง POSIX (หรืออย่างน้อย GNU)

3
ฉันจะย้ายไฟล์ตามประเภทซ้ำจากไดเรกทอรีและไดเรกทอรีย่อยไปยังไดเรกทอรีอื่นได้อย่างไร
อะไรจะเป็นวิธีที่ดีในการย้ายประเภทไฟล์จากไดเรกทอรีและไดเรกทอรีย่อยทั้งหมด เช่น "ย้าย all * .ogg ใน / thisdir ซ้ำไปยัง / somedir" ฉันลองสองสิ่ง; ความพยายามที่ดีที่สุดของฉันคือ (ยังไม่ดีขนาดนั้น): find /thisdir -type f -name '*.ogg' -exec mv /somedir {} \; มันกลับมาในแต่ละบรรทัดก่อนแต่ละชื่อไฟล์ mv: cannot overwrite non-directory `/thisdir/*.ogg' with directory `/somedir'

7
รายการไฟล์ที่มีคำเฉพาะในข้อความของพวกเขา
ฉันต้องการแสดงรายการไฟล์ซ้ำและไม่ซ้ำกันซึ่งมีคำที่กำหนด ตัวอย่าง : การตรวจสอบคำว่า 'ตรวจสอบ' ฉันทำตามปกติคือ grep $ grep check * -R แต่เนื่องจากมีคำนี้เกิดขึ้นมากมายฉันได้รับผลลัพธ์จำนวนมาก ดังนั้นฉันเพียงต้องการรายการชื่อไฟล์ที่มีคำค้นหาที่กำหนด ฉันเดาว่ามีfindและxargsจะพอเพียงที่นี่ แต่ไม่แน่ใจ ความคิดใด ๆ
30 find  grep  file-search 

3
ค้นหาไฟล์เมื่อคุณรู้จักการตรวจสอบมัน?
ฉันมีmd5sumไฟล์และฉันไม่รู้ว่ามันอยู่ที่ไหนในระบบของฉัน มีตัวเลือกง่าย ๆ ในfindการระบุไฟล์ตามmd5หรือไม่? หรือฉันจำเป็นต้องพัฒนาสคริปต์ขนาดเล็ก? ฉันทำงานบน AIX 6 โดยไม่มีเครื่องมือ GNU
29 find  aix  hashsum 

1
เป็นไปได้หรือไม่ที่จะใช้ `find -exec sh -c` อย่างปลอดภัย?
ฉันพยายามที่จะใช้findเพื่อecho 0เป็นไฟล์บาง แต่เห็นได้ชัดว่านี้จะทำงานเฉพาะกับsh -c: find /proc/sys/net/ipv6 -name accept_ra -exec sh -c 'echo 0 > {}' \; แต่การใช้งานsh -cด้วยfind -execทำให้ฉันรู้สึกไม่สบายใจมากเพราะฉันสงสัยว่าจะมีปัญหาในการอ้างอิง ฉันเล่นซอกับมันและเห็นได้ชัดว่าความสงสัยของฉันถูกต้อง: การตั้งค่าการทดสอบของฉัน: martin@dogmeat ~ % cd findtest martin@dogmeat ~/findtest % echo one > file\ with\ spaces martin@dogmeat ~/findtest % echo two > file\ with\ \'single\ quotes\' martin@dogmeat ~/findtest % echo three …
29 shell  find 

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