هل من الممكن إنشاء كرة أرضية تتطابق مع الملفات الموجودة في الدليل الحالي وجميع الدلائل الفرعية؟

StackOverflow https://stackoverflow.com/questions/44481

  •  09-06-2019
  •  | 
  •  

سؤال

لبنية الدليل هذه:

.
|-- README.txt
|-- firstlevel.rb
`-- lib
    |-- models
    |   |-- foo
    |   |   `-- fourthlevel.rb
    |   `-- thirdlevel.rb
    `-- secondlevel.rb

3 directories, 5 files

سوف تتطابق الكرة الأرضية مع:

firstlevel.rb 
lib/secondlevel.rb 
lib/models/thirdlevel.rb
lib/models/foo/fourthlevel.rb
هل كانت مفيدة؟

المحلول

أعتذر إذا فاتني الهدف الحقيقي من السؤال، ولكن إذا كنت أستخدم sh/bash/etc، فمن المحتمل أن أستخدمه يجد للقيام بهذه المهمة:

find . -name '*.rb' -type f

يمكن أن تصبح Globs سيئة بعض الشيء عند استخدامها من داخل البرنامج النصي و يجد أكثر مرونة.

نصائح أخرى

في زش، **/*.rb يعمل

في روبي نفسها:

Dir.glob('**/*.rb') perhaps?

يبدو أنه لا يمكن القيام به من bash

إذا كنت تستخدم zsh ثم

ls **/*.rb

سوف تنتج النتيجة الصحيحة.

وإلا يمكنك اختطاف ruby مترجم فوري (وربما لغات أخرى)

ruby -e "puts Dir.glob('**/*.rb')"

شكرا لكريس وجايوس لإجاباتك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top