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

การดำเนินงานในไดเรกทอรีและไดเรกทอรีย่อยซ้ำ

2
การค้นหา grep -r โดยค่าเริ่มต้นอยู่ที่ไหน
ฉันพบว่าฉันค้นหาโดยใช้ grep โดยไม่ระบุเส้นทางเหมือนgrep -r 'mytext'ใช้เวลานานมาก ในขณะเดียวกันถ้าฉันค้นหาด้วยพา ธ ที่ระบุgrep -r 'mytext' .มันจะค้นหาสิ่งที่ฉันต้องการได้ทันที ดังนั้นฉันอยากรู้ว่าในรูปแบบแรกในไดเรกทอรีใด grep ค้นหา? UDATE: รุ่น grep: grep (GNU grep) 2.10
16 grep  recursive 

6
ฉันจะ grep ซ้ำโดยใช้ไฟล์เก็บถาวรที่บีบอัดได้อย่างไร
ฉันพยายามค้นหาโมดูลuse Test::Versionใน cpan ดังนั้นฉันจึงเคยminicpanสะท้อนมัน ปัญหาของฉันคือฉันต้องวนซ้ำไฟล์เก็บถาวรที่ดาวน์โหลดมาและ grep ไฟล์ที่อยู่ในไฟล์เก็บถาวร มีใครบอกฉันได้ไหมว่าฉันจะทำเช่นนี้? ควรเป็นวิธีที่บอกฉันว่าไฟล์ใดในไฟล์เก็บถาวรและบรรทัดใดที่เปิดอยู่ (หมายเหตุ: ไฟล์เหล่านี้ไม่ใช่ไฟล์ tarball ทั้งหมดเป็นไฟล์ซิป)
16 grep  find  zip  recursive  archive 

2
cp ทำงานอย่างประหลาดเมื่อ (dot) หรือ .. (dot dot) เป็นไดเรกทอรีต้นทาง
คำตอบนี้แสดงให้เห็นว่าสามารถคัดลอกไฟล์ทั้งหมด - รวมถึงไฟล์ที่ซ่อน - จากไดเรกทอรีsrcไปยังไดเรกทอรีdestเช่น: mkdir dest cp -r src/. dest ไม่มีคำอธิบายในคำตอบหรือความคิดเห็นว่าทำไมมันถึงใช้งานได้จริงและดูเหมือนว่าไม่มีใครพบเอกสารประกอบในเรื่องนี้ ฉันลองทำบางสิ่ง ครั้งแรกกรณีปกติ: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src dest $ ls -A dest dest_file src จากนั้น/.ในตอนท้าย: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src/. …

4
วนซ้ำซ้ำในไฟล์ต่างๆในไดเรกทอรี
วนซ้ำซ้ำในไฟล์ต่างๆในไดเรกทอรีสามารถทำได้อย่างง่ายดายโดย: find . -type f -exec bar {} \; อย่างไรก็ตามข้างต้นไม่สามารถใช้ได้กับสิ่งที่ซับซ้อนมากขึ้นซึ่งต้องมีกิ่งที่มีเงื่อนไขการวนซ้ำ ฯลฯ ต้องทำ ฉันเคยใช้สิ่งนี้สำหรับข้างต้น: while read line; do [...]; done < <(find . -type f) อย่างไรก็ตามดูเหมือนว่าสิ่งนี้จะใช้ไม่ได้กับไฟล์ที่มีอักขระที่ไม่ชัดเจน $ touch $'a\nb' $ find . -type f ./a?b มีทางเลือกอื่นที่จัดการกับตัวละครที่คลุมเครือเช่นนี้หรือไม่

1
ทำไม inotifywatch ตรวจไม่พบการเปลี่ยนแปลงของไฟล์ที่เพิ่มเข้ามา?
ฉันพยายามตรวจสอบ/tmpโฟลเดอร์เพื่อดูการเปลี่ยนแปลงโดยใช้inotifywatch: sudo inotifywatch -v -r /tmp หลังจากสร้างไฟล์สองสามไฟล์ ( touch /tmp/test-1 /tmp/test-2) ฉันจะยกเลิกinotifywatch(โดยCtrl- Cซึ่งแสดงสถิติต่อไปนี้ให้ฉันดู Establishing watches... Setting up watch(es) on /tmp OK, /tmp is now being watched. Total of 39 watches. Finished establishing watches, now collecting statistics. total attrib close_write open create filename 8 2 2 2 2 /tmp/ ผลลัพธ์พิมพ์เฉพาะสถิติ แต่ไม่ใช่ไฟล์ที่ฉันคาดไว้ …

4
เพิ่มไฟล์ซ้ำในไดเรกทอรีย่อยทั้งหมด
ฉันจะเพิ่ม (หรือแตะ) ไฟล์ซ้ำ ๆ ลงในไดเรกทอรีปัจจุบันรวมถึงไดเรกทอรีย่อยทั้งหมดได้อย่างไร ตัวอย่างเช่น ฉันต้องการเปิดไดเรกทอรีต้นไม้นี้: . ├── 1 │ ├── A │ └── B ├── 2 │ └── A └── 3 ├── A └── B └── I 9 directories, 0 files เข้าไป . ├── 1 │ ├── A │ │ └── file │ ├── B │ │ └── …

2
ทำไมการเรียกซ้ำไม่ขึ้นไปด้วย rm
ฉันสงสัยเกี่ยวกับทิศทางของการเรียกซ้ำโดยทั่วไปและ RM โดยเฉพาะ การเรียกซ้ำ rm ทำงานได้ถูกต้องหรือไม่ วิ่ง: sudo rm -R *.QTFSจะลบไฟล์ * .QTFS ทั้งหมดในไดเรกทอรีปัจจุบันและลูก ๆ ของมันถูกต้องไหม? ไดเรกทอรีปัจจุบันที่แสดงโดยls -lhaยังมี.และ..ลิงก์สำหรับการขาดคำที่ดีกว่าดังนั้นทำไมการเรียกซ้ำไม่ทำตามสิ่งเหล่านี้ขึ้นในแผนผังไดเรกทอรี? มีการ จำกัด สิทธิ์ในแอป rm หรือไม่.และ..ไม่ใช่ของจริง?
13 recursive 

2
ฉันจะรันคำสั่งบนหลายไฟล์ได้อย่างไร
นี่เป็นพื้นฐานที่ค่อนข้างฉันมีโฟลเดอร์ที่มีโฟลเดอร์ย่อยหลายไฟล์ของ JS และฉันต้องการเรียกใช้คอมไพเลอร์ Clojure ของ Google ในไฟล์ทั้งหมดในโฟลเดอร์เหล่านั้น คำสั่งในการประมวลผลไฟล์เดียวมีดังนี้: java -jar compiler.jar --js filename.js --js_output_file newfilename.js ฉันจะแก้ไขสิ่งนี้ให้ทำงานกับทุกไฟล์ JS ในโครงสร้างไดเรกทอรีของฉันได้อย่างไร

3
ค้นหาและลบไฟล์ชั่วคราวทั้งหมดในไดเรกทอรีผู้ใช้
ฉันใช้เสียงเรียกเข้าเป็นจำนวนมากและพื้นที่ของฉันมีไฟฟ้าขัดข้องมาก ดังนั้นผลลัพธ์คือฉันได้รับ*.swpไฟล์จำนวนมากกระจัดกระจายบนพีซีของฉัน ฉันต้องการนามแฝงของrmคำสั่งที่จะลบไฟล์ทั้งหมดที่มีอย่างใดอย่างหนึ่ง.swp, ~, .netrwhist, .logหรือ.bakระบบส่วนขยายกว้าง(หรืออย่างน้อยในไดเรกทอรีบ้านของฉัน) คำสั่งควรลบไดเรคทอรีระบบไฟล์ / โฮมไดเร็กตอรี่แม้ว่าฉันจะเปิดอยู่~/Desktop. ฉันจะใช้งานได้อย่างไร

2
บันทึก PDF ทั้งหมดในไดเรกทอรีโดยเก็บโครงสร้างไดเรกทอรีไว้
ฉันกำลังพยายามสร้าง tarball บีบอัดที่มีไฟล์ PDF ทั้งหมดที่มีอยู่ในหนึ่งในไดเรกทอรีของฉัน โครงสร้างไดเรกทอรีจะต้องเก็บรักษาไว้ ไม่จำเป็นต้องมีไดเรกทอรีว่างเปล่า แต่ฉันไม่สนใจว่ามีอยู่หรือไม่ ตัวอย่างเช่นสมมติว่าฉันมีไดเรกทอรีที่มีลักษณะเช่นนี้: dir dir/subdir1 dir/subdir1/subsubdir1/song.mp3 dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir2/subsubdir1/another-song.mp3 dir/subdir2/subsubdir1/top-ten-movies.txt dir/subdir3 dir/subdir3/another-document.pdf หลังจากรันคำสั่งฉันต้องการมีdir.tar.gzสิ่งนี้: dir dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir3 dir/subdir3/another-document.pdf ไปได้หรือไม่
11 find  tar  recursive 

5
ฉันจะใช้การเปลี่ยนชื่อเพื่อเปลี่ยนชื่อซ้ำทุก ๆ ครั้งเป็นตัวพิมพ์ใหญ่ได้อย่างไร
ฉันต้องการเปลี่ยนชื่อไฟล์และโฟลเดอร์ทั้งหมด (โฟลเดอร์ย่อย) ซ้ำ ๆ ให้เป็นตัวพิมพ์ใหญ่ ฉันพบสคริปต์บางอย่างที่จะทำให้เป็นตัวพิมพ์เล็ก แต่ฉันไม่ทราบวิธีการเปลี่ยนสคริปต์ดังนั้นจะทำแบบอื่น ๆ (ล่างเป็นบน) สคริปต์ที่ฉันพบและใช้งานได้สำหรับตัวพิมพ์เล็ก แต่ฉันไม่รู้วิธีแก้ไขคือ: rename 'y/A-Z/a-z/' * man renameมันมาจาก

4
วิธีการแตกโฟลเดอร์ที่มีชื่อเฉพาะจากไดเรกทอรีแบบเรียกซ้ำให้ลบโฟลเดอร์อื่น
ฉันมีไดเรกทอรีต้นไม้ชนิดนี้ที่ได้จากการขยายไฟล์ zip: x -> y -> z -> run -> ไฟล์และคำสั่งที่นี่ ดังนั้นจึงมี 4 ไดเรกทอรี 3 คนในนั้นเป็นไฟล์ว่างเปล่า (x, y, z) และมีเพียง 1 ไดเรกทอรีย่อยและมีไดเรกทอรีที่ฉันสนใจชื่อ " run " ฉันต้องการย้ายไดเรกทอรี "เรียกใช้" ตัวเอง (รวมถึงทุกอย่างภายใน) ไปยังตำแหน่ง "รูท" ที่ฉันคลายซิป (เช่นที่ "x" อยู่ แต่ไม่ใช่ภายใน "x") สมมติฐาน: มีอยู่โฟลเดอร์ชื่อ "รัน" แต่ผมไม่ทราบว่าหลายไดเรกทอรีผมจะต้อง "ซีดี" จะได้รับไป (อาจจะ 3 (x, y, z) อาจจะเป็น 10 …

2
จัดการชื่อไฟล์ piped จากคำสั่ง find
ฉันค่อนข้างใหม่กับ Bash และฉันพยายามทำบางสิ่งที่บนพื้นผิวนั้นค่อนข้างตรงไปตรงมา - ลองค้นหาลำดับชั้นของไดเรกทอรีเพื่อรับไฟล์ * .wma ทั้งหมดไปป์ที่เอาต์พุตไปยังคำสั่งที่ฉันแปลงเป็น mp3 และ บันทึกไฟล์ที่แปลงเป็น. mp3 ฉันคิดว่าคำสั่งควรมีลักษณะดังต่อไปนี้ (ฉันได้ละทิ้งคำสั่งการแปลงเสียงและฉันใช้ echo แทนภาพประกอบ): $ find ./ -name '*.wma' -type f -print0 | xargs -0 -I f echo ${f%.*}.mp3 ตามที่ฉันเข้าใจแล้ว -print0 arg จะให้ฉันจัดการกับชื่อไฟล์ที่มีช่องว่าง ฉันคาดหวังว่า (เนื่องจาก xargs) ว่าแต่ละพา ธ ไฟล์จาก find ถูกดักจับใน f และการใช้ซับสตริงจับคู่ / ลบจากจุดสิ้นสุดของสตริงนั้นฉันควรจะสะท้อนพา ธ ไฟล์ดั้งเดิมด้วย mp3 …

4
ค้นหาสตริงในไฟล์เฉพาะภายในไดเรกทอรีย่อย
สมมติว่าฉันต้องการค้นหาฟังก์ชันGetTypes()ในทุกไฟล์ต้นฉบับ C # ( .cs) ไดเรกทอรี / ไดเรกทอรีย่อย ผมใช้แต่ฉันได้ข้อผิดพลาดกับgrep -rn GetTypes *.cs grep: *.cs: No such file or directoryฉันต้องใช้grep -rn GetTypes *แต่ในกรณีนี้มันแสดงไฟล์ทั้งหมดไม่*.csเพียง ฉันต้องใช้คำสั่งอะไรเพื่อค้นหาสตริงใน.csไฟล์เท่านั้น?

5
กำลังค้นหาซับสตริงในไฟล์ข้ามไดเรกทอรีย่อยด้วยคำสั่งในตัวเดียวหรือไม่
ใน Windows ถ้าฉันต้องการค้นหาสตริงในไฟล์ทั้งหมดในไดเรกทอรีย่อยทั้งหมดฉันจะทำสิ่งที่ต้องการ findstr /C:"the string" /S *.h อย่างไรก็ตามในลินุกซ์ (พูด, อูบุนตู) ฉันได้พบไม่มีวิธีอื่นนอกเหนือจากคำสั่งประปาบางส่วนที่เกี่ยวข้องกับการfind, xargsและgrep(ตัวอย่างที่หน้านี้: ? ฉันจะซ้ำ grep ผ่านไดเรกทอรีย่อย ) อย่างไรก็ตามคำถามของฉันแตกต่างกัน: มีคำสั่งในตัวเดียวที่ทำงานผ่านเวทมนตร์นี้โดยไม่ต้องเขียนเชลล์สคริปต์ของฉันหรือไม่
10 linux  grep  find  recursive 

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