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

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

5
วิธีลบ (1) จากชื่อไฟล์โดยใช้คำสั่ง find
ฉันเพิ่งแปลงไฟล์ FLAC ทั้งหมดของฉันเป็นอัตราการสุ่มตัวอย่างที่ต่ำกว่า 44.1 kHz และความลึกบิต 24 บิต (เนื่องจาก iPhone / iPod ไม่รองรับสิ่งที่เหนือกว่า) โดยใช้ XLD บน Mac OS 10.7 (Lion) แม้ว่าฉันจะบอกให้ XLD เขียนทับไฟล์ก่อนหน้านี้ทั้งหมด แต่ XLD ก็ต่อ(1)ท้ายไฟล์ที่คล้ายกันมาก some_song.m4a ถึง some_song(1).m4a ดังนั้นตอนนี้ฉันต้องการลบไฟล์นั้น(1)จากไฟล์ FLAC ทั้งหมดที่ฉันแปลง ฉันรู้ว่าฉันอาจจะใช้บางโปรแกรมหรือแม้แต่ AppleScript เพื่อเปลี่ยนชื่อไฟล์ แต่ฉันต้องการเรียนรู้โดยใช้บรรทัดคำสั่งโรงเรียนเก่า ฉันรู้ว่าfind . -name *\(1\).m4aจะคว้าไฟล์ FLAC ที่แปลงแล้วทั้งหมด ต่อไปฉันรู้ว่าฉันต้องทำบางสิ่งด้วย-execและmvเปลี่ยนชื่อไฟล์ที่พบทั้งหมด (1)แต่สิ่งที่ผมไม่สามารถคิดออกเป็นวิธีที่จะทำให้ชื่อไฟล์เดิมและมีเพียงลบ บางทีฉันอาจต้องทำการจับภาพ regex ของกลุ่มเพื่อจัดเก็บส่วนของชื่อไฟล์ที่ฉันไม่ต้องการแก้ไข หรือบางทีมันเป็นไปไม่ได้ที่จะทำทุกอย่างในบรรทัดเดียวและฉันควรสร้างเชลล์สคริป (ซึ่งฉันไม่สะดวกที่จะทำ แต่ฉันยินดีที่จะลอง) …

3
ค้นหาไดเรกทอรีที่ไม่รวม
ฉันอยู่บน Linux (Ubuntu) และฉันต้องการแยกไดเรกทอรีบางรายการ (เช่น. hg) เมื่อฉันทำ find | less ฉันพยายามต่อไปนี้เพื่อแยกไดเรกทอรี. hg ออกจากรายการ แต่ดูเหมือนจะไม่ทำงาน find -type d \( ! -iname \.hg \) find -type d \( ! -name \.hg \) find -type d \( ! -iname .hg \) ฉันจะแยก.directoryคำสั่ง find ได้อย่างไร
13 find 

2
เปลี่ยนการอนุญาตไฟล์ซ้ำ แต่ไม่ใช่ไดเรกทอรี?
ฉันทำการเปลี่ยนแปลงการอนุญาตซ้ำหลายครั้งของไฟล์บางไฟล์ที่ฉันย้ายไปยังระบบยูนิกซ์ ฉันเปลี่ยนเป็น ug + rw แต่ฉันพบว่าฉันไม่สามารถข้ามไดเรกทอรีย่อยได้ ฉันดูที่ man page สำหรับchmodและไม่เห็นคำอธิบายใด ๆ สำหรับการยกเว้นไดเรกทอรีดังนั้นฉันจึง googled เพียงเล็กน้อยและพบว่าผู้คนเคยfindเปลี่ยนสิทธิ์แบบเรียกซ้ำในไดเรกทอรีเป็น 'execute' สำหรับผู้ใช้และกลุ่ม ฉันทำอย่างนั้นและจากนั้นฉันสามารถตรวจสอบพวกเขา แต่สำหรับฉันแล้วฉันควรจะสามารถค้นพบสิ่งนี้ได้chmod- เปลี่ยนไฟล์ซ้ำเพื่ออ่าน / เขียน แต่ไม่ทำให้ไดเรกทอรีไม่สามารถย้อนกลับได้ ฉันได้ทำสิ่งนี้ 'ถูกต้อง' หรือมีวิธีที่ง่ายกว่าในการทำมันหรือไม่?



7
ค้นหารายการไดเรกทอรีหนึ่งระดับลึกจากไดเรกทอรีที่ตรงกัน
ฉันพยายามรับรายการไดเรกทอรีที่อยู่ในโฟลเดอร์เฉพาะ รับโฟลเดอร์ตัวอย่างเหล่านี้: foo/bar/test foo/bar/test/css foo/bar/wp-content/plugins/XYZ foo/bar/wp-content/plugins/XYZ/js foo/bar/wp-content/plugins/XYZ/css baz/wp-content/plugins/ABC baz/wp-content/plugins/ABC/inc baz/wp-content/plugins/ABC/inc/lib baz/wp-content/plugins/DEF bat/bar/foo/blog/wp-content/plugins/GHI ฉันต้องการคำสั่งที่จะกลับมา: XYZ ABC DEF GHI โดยพื้นฐานแล้วฉันกำลังมองหาโฟลเดอร์ที่อยู่ใน wp-content / plugins / การใช้findทำให้ฉันใกล้เคียงที่สุด แต่ฉันไม่สามารถใช้-maxdepthเพราะโฟลเดอร์แตกต่างจากที่ฉันค้นหา การรันสิ่งต่อไปนี้จะคืนค่าไดเรกทอรีลูกทั้งหมดซ้ำ find -type d -path *wp-content/plugins/* foo/bar/wp-content/plugins/XYZ foo/bar/wp-content/plugins/XYZ/js foo/bar/wp-content/plugins/XYZ/css baz/wp-content/plugins/ABC baz/wp-content/plugins/ABC/inc baz/wp-content/plugins/ABC/inc/lib baz/wp-content/plugins/DEF bat/bar/foo/blog/wp-content/plugins/GHI
13 bash  find  directory  ls 

4
จะใช้คำสั่ง "cat" บนเอาต์พุตของคำสั่ง "find" ได้อย่างไร
ฉันต้องการเปลี่ยนทิศทางเอาต์พุตของfindคำสั่งไปยังcatคำสั่งเพื่อให้ฉันสามารถพิมพ์ข้อมูลของไฟล์ที่กำหนด ดังนั้นสำหรับตัวอย่างเช่นถ้าผลลัพธ์ของการค้นหาเป็นแล้วแมวควรจะตีความว่าเป็น/aFile/readme cat ./aFile/readmeฉันจะทำสิ่งนั้นทันทีได้อย่างไร ฉันต้องใช้ท่อหรือไม่ ฉันลองรุ่นนี้: cat | find ./inhere -size 1033c 2> /dev/null แต่ฉันคิดว่ามันผิดอย่างสิ้นเชิงเหรอ? แน่นอนฉันแน่ใจว่าผลลัพธ์เป็นไฟล์เดียวเท่านั้นและไม่ใช่หลายไฟล์ ดังนั้นฉันจะทำอย่างไร ฉันค้นหาใน Google และไม่พบวิธีแก้ปัญหาอาจเป็นเพราะฉันค้นหาไม่ถูกต้อง: P
13 find  cat 

4
ค้นหา: ลูกพรุนไม่สนใจเส้นทางที่ระบุ
ฉันต้องแยก.gitออกจากการfindค้นหาของฉัน เพื่อให้บรรลุผลนั้นฉันใช้-path ./.git -pruneสวิตช์: $ find . -path ./.git -prune -o \( -type f -o -type l -o -type d \) | grep '.git' ./.git อย่างไรก็ตามแม้ว่าสิ่งนี้จะข้ามเนื้อหาของไดเรกทอรี. git แต่จะแสดงรายการไดเรกทอรีเอง มันทำงานได้เมื่อฉันเพิ่ม-path ./.git -prune -o -print -a find . -path ./.git -prune -o -print -a \( -type f -o -type l -o -type …
13 bash  find 

3
ฉันจะค้นหาไดเรกทอรีย่อยทั้งหมดเพื่อค้นหาด้วยชื่อที่แน่นอนได้อย่างไร
สมมติว่าฉันมีไดเรกทอรีระดับบนสุดที่เรียกว่า/dirและไดเรกทอรีย่อยมากมาย ฉันจะค้นหาไดเรกทอรีย่อยของ/dirเพื่อค้นหาหนึ่งชื่อได้x/x/dir/x/x/x/targetอย่างไร คำถามนี้เป็นคำถามที่คล้ายกัน แต่ไม่ว่าสิ่งที่ฉันกำลังมองหา: ค้นหาคำสั่งสำหรับการไดเรกทอรีย่อยบางอย่าง ฉันไม่ได้มองหาไฟล์เพียงไดเรกทอรีที่มีชื่อเฉพาะ

2
เป็นไปได้ไหมที่จะค้นหาไดเรกทอรี / ไฟล์รวมกัน?
ฉันต้องการค้นหารูปภาพพูด ABC.jpg ซึ่งฉันรู้ว่าจะถูกวางทางโปรแกรมลงในไดเรกทอรีชื่อ ABC_MPSC ฉันพยายามแล้ว: cd / find . -name "ABC_MPSC/ABC.jpg" แต่นั่นไม่ได้คืนสิ่งใด (ฉันรู้จริง ๆ ว่าคนที่ฉันค้นหาคือที่ไหนฉันจึงรู้ว่ามันมีอยู่) มีคำสั่ง find ที่ทำให้ฉันไม่ต้องค้นหาด้วยตนเองหรือไม่?
12 find 

1
วิธีคัดลอกไฟล์ทั้งหมดในโฟลเดอร์โดยไม่รวมไฟล์ที่กำลังเขียนอยู่?
ผมดาวน์โหลดไฟล์หลายไฟล์ไปยังโฟลเดอร์ที่downloadingผ่านHTTPie สคริปต์ทุบตีมีจุดประสงค์เพื่อประมวลผลไฟล์ที่ดาวน์โหลดมาและฉันพยายามคัดลอกไฟล์ที่ดาวน์โหลดไปยังโฟลเดอร์อื่นเช่น find /folder/downloading -type f -exec mv '{}' /folder/downloaded \; แต่ยังคัดลอกไฟล์ซึ่งยังไม่เสร็จ ฉันพยายาม จำกัด การถ่ายโอนไปยังไฟล์เก่าโดยเพิ่ม-mmin +5ไปยังคำสั่ง คำสั่งที่มีประสิทธิภาพในการปล่อยให้ไฟล์กำลังถูกเขียนและโอนย้ายไฟล์ที่ดาวน์โหลดมาเท่านั้น?

3
สองหาคำสั่งเปรียบเทียบ
เมื่อเร็ว ๆ นี้ฉันได้รับfindหนึ่งซับ แต่ฉันไม่สามารถอธิบายได้ว่าความแตกต่างของสองด้านล่างมาจากไหน: ตัวอย่างที่ 1 [root@centos share]# find . -exec grep -i "madis" {} /dev/null \; ./names:Madison Randy:300:Product Development ตัวอย่างที่ 2 [root@centos share]# find . -exec grep -i "madis" {} \; Madison Randy:300:Product Development อย่างที่คุณเห็นในไฟล์แรกมีไฟล์เฉพาะที่สตริงนี้มาจากและจนถึงตอนนี้ฉันไม่สามารถรู้ได้ว่าทำไมมันถึงเกิดขึ้น
12 bash  shell  find 

4
ลบไฟล์ในช่วงขนาดที่แน่นอน
ฉันต้องการลบไฟล์ที่มีขนาดอยู่ระหว่างค่าที่แน่นอน ตัวอย่างเช่นฉันมีรายการไฟล์ต่อไปนี้: -rw-r--r-- 1 smsc sys 558 Apr 30 13:07 stats.sfe.1.20120430130513.xml.Z -rw-r--r-- 1 smsc sys 388 Apr 30 15:32 stats.sfe.1.20120430153013.xml.Z -rw-r--r-- 1 smsc sys 386 Apr 30 15:36 stats.sfe.1.20120430153513.xml.Z -rw-r--r-- 1 smsc sys 389 Apr 30 15:42 stats.sfe.1.20120430154013.xml.Z -rw-r--r-- 1 smsc sys 390 Apr 30 16:02 stats.sfe.1.20120430160013.xml.Z -rw-r--r-- 1 smsc …
12 bash  find  size 


1
{} ในคำสั่ง find / path / -exec '{}' ทำอะไร
ฉันอยากรู้ว่าคำสั่งต่อไปนี้มีไว้เพื่ออะไร คำสั่งตัวอย่าง: find /foo/ -name "*.txt" -exec rm -v {} \; หน้า Man ให้การแจ้งเตือนเล็กน้อย แต่มันทำให้ฉันสับสนเล็กน้อย: สตริง '{}' ถูกแทนที่ด้วยชื่อไฟล์ปัจจุบันที่ถูกประมวลผลทุกที่ที่เกิดขึ้นในอาร์กิวเมนต์ของคำสั่งไม่ใช่เฉพาะในอาร์กิวเมนต์ที่อยู่คนเดียวเช่นเดียวกับในบางรุ่นของการค้นหา
12 find 

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