[中文] [한국어]
fd
هو برنامج للعثور على إدخالات في نظام الملفات الخاص بك. إنه بديل بسيط وسريع وسهل الاستخدام find
. على الرغم من أنها لا تهدف إلى دعم جميع وظائف find
، إلا أنها توفر افتراضات معقولة (رأي) لأغلبية حالات الاستخدام.
التثبيت • كيفية الاستخدام • استكشاف الأخطاء وإصلاحها
fd PATTERN
بدلاً من find -iname '*PATTERN*'
.ls
)..gitignore
، افتراضيًا.find
:-). أولاً ، للحصول على نظرة عامة على جميع خيارات سطر الأوامر المتاحة ، يمكنك إما تشغيل fd -h
للحصول على رسالة مساعدة موجزة أو fd --help
للحصول على إصدار أكثر تفصيلاً.
تم تصميم FD للعثور على إدخالات في نظام الملفات الخاص بك. البحث الأساسي الذي يمكنك القيام به هو تشغيل FD مع وسيطة واحدة: نمط البحث. على سبيل المثال ، افترض أنك تريد العثور على نص قديم لك (يشمل الاسم netflix
):
> fd netfl
Software/python/imdb-ratings/netflix-details.py
إذا تم استدعاؤه مع وسيطة واحدة مثل هذا ، فإن FD يبحث في الدليل الحالي بشكل متكرر لأي إدخالات تحتوي على نمط netfl
.
يتم التعامل مع نمط البحث كتعبير منتظم. هنا ، نبحث عن الإدخالات التي تبدأ بـ x
وينتهي بـ rc
:
> cd /etc
> fd ' ^x.*rc$ '
X11/xinit/xinitrc
X11/xinit/xserverrc
تم توثيق بناء جملة التعبير العادي المستخدم بواسطة fd
هنا.
إذا أردنا البحث في دليل معين ، فيمكن إعطاءه كوسيطة ثانية لـ FD :
> fd passwd /etc
/etc/default/passwd
/etc/pam.d/passwd
/etc/passwd
يمكن استدعاء FD مع عدم وجود حجج. هذا مفيد جدًا للحصول على نظرة عامة سريعة على جميع الإدخالات في الدليل الحالي ، بشكل متكرر (على غرار ls -R
):
> cd fd/tests
> fd
testenv
testenv/mod.rs
tests.rs
إذا كنت ترغب في استخدام هذه الوظيفة لسرد جميع الملفات في دليل معين ، فيجب عليك استخدام نمط جذاب مثل .
أو ^
:
> fd . fd/tests/
testenv
testenv/mod.rs
tests.rs
في كثير من الأحيان ، نحن مهتمون بجميع ملفات نوع معين. يمكن القيام بذلك مع خيار -e
(أو --extension
). هنا ، نبحث عن جميع ملفات Markdown في مستودع FD:
> cd fd
> fd -e md
CONTRIBUTING.md
README.md
يمكن استخدام خيار -e
مع نمط البحث:
> fd -e rs mod
src/fshelper/mod.rs
src/lscolors/mod.rs
tests/testenv/mod.rs
للعثور على الملفات مع نمط البحث المقدم بالضبط ، استخدم خيار -g
(أو --glob
):
> fd -g libc.so /usr
/usr/lib32/libc.so
/usr/lib/libc.so
بشكل افتراضي ، لا يبحث FD من الدلائل الخفية ولا يعرض الملفات المخفية في نتائج البحث. لتعطيل هذا السلوك ، يمكننا استخدام خيار -H
(أو --hidden
):
> fd pre-commit
> fd -H pre-commit
.git/hooks/pre-commit.sample
إذا عملنا في دليل يمثل مستودع GIT (أو يتضمن مستودعات GIT) ، فإن FD لا يبحث عن مجلدات (ولا يعرض الملفات) التي تتطابق مع أحد أنماط .gitignore
. لتعطيل هذا السلوك ، يمكننا استخدام خيار -I
(أو --no-ignore
):
> fd num_cpu
> fd -I num_cpu
target/debug/deps/libnum_cpus-f5ce7ef99006aa05.rlib
للبحث حقًا عن جميع الملفات والأدلة ، ما عليك سوى الجمع بين الميزات المخفية والتجاهل لإظهار كل شيء ( -HI
) أو الاستخدام -u
/ --unrestricted
.
بشكل افتراضي ، يطابق FD فقط اسم ملف كل ملف. ومع ذلك ، باستخدام خيار --full-path
أو -p
، يمكنك المطابقة مع المسار الكامل.
> fd -p -g ' **/.git/config '
> fd -p ' .*/lesson-d+/[a-z]+.(jpg|png) '
بدلاً من مجرد إظهار نتائج البحث ، غالبًا ما تريد أن تفعل شيئًا معهم. يوفر fd
طريقتين لتنفيذ الأوامر الخارجية لكل من نتائج البحث الخاصة بك:
-x
/ --exec
بتشغيل أمر خارجي لكل من نتائج البحث (بالتوازي).-X
/ --exec-batch
الأمر الخارجي مرة واحدة ، مع جميع نتائج البحث كوسائط . ابحث بشكل متكرر جميع الأرشيفات الرمز البريدي وتفريغها:
fd -e zip -x unzip
إذا كان هناك اثنين من هذه الملفات ، file1.zip
و backup/file2.zip
، فسيؤدي ذلك إلى تنفيذ unzip file1.zip
و unzip backup/file2.zip
. يتم تشغيل العمليتين unzip
بالتوازي (إذا تم العثور على الملفات بسرعة كافية).
ابحث عن ملفات *.h
و *.cpp
وتنسيقها تلقائيًا في مكان مع clang-format -i
:
fd -e h -e cpp -x clang-format -i
لاحظ كيف يمكن تمرير خيار -i
clang-format
كوسيطة منفصلة. هذا هو السبب في أننا وضعنا خيار -x
الماضي.
ابحث عن جميع ملفات test_*.py
وفتحها في المحرر المفضل لديك:
fd -g ' test_*.py ' -X vim
لاحظ أننا نستخدم -X
المال هنا لفتح مثيل vim
واحد. إذا كان هناك اثنين من هذه الملفات ، test_basic.py
و lib/test_advanced.py
، فسيقوم ذلك بتشغيل vim test_basic.py lib/test_advanced.py
.
للاطلاع على تفاصيل مثل أذونات الملفات والأصحاب وأحجام الملفات وما إلى ذلك ، يمكنك إخبار fd
بإظهارها عن طريق تشغيل ls
لكل نتيجة:
fd … -X ls -lhd --color=always
هذا النمط مفيد للغاية بحيث يوفر fd
اختصار. يمكنك استخدام خيار -l
/ --list-details
لتنفيذ ls
بهذه الطريقة: fd … -l
.
خيار -X
مفيد أيضًا عند الجمع بين fd
مع RipGrep ( rg
) من أجل البحث في فئة معينة من الملفات ، مثل جميع ملفات مصدر C ++:
fd -e cpp -e cxx -e h -e hpp -X rg ' std::cout '
قم بتحويل جميع ملفات *.jpg
إلى ملفات *.png
:
fd -e jpg -x convert {} {.}.png
هنا ، {}
هو عنصر نائب عن نتيجة البحث. {.}
هو نفسه ، بدون امتداد الملف. انظر أدناه لمزيد من التفاصيل حول بناء جملة العنصر النائب.
لن يتم تداخل الإخراج الطرفي للأوامر من مؤشرات الترابط المتوازية باستخدام -x
أو مشوهة ، بحيث يمكن استخدام fd -x
لتوازي المهمة بشكل دائم على العديد من الملفات. مثال على ذلك هو حساب عمليات فحص كل ملف فردي داخل دليل.
fd -tf -x md5sum > file_checksums.txt
تأخذ خيارات -x
و -X
قالب الأوامر كسلسلة من الوسائط (بدلاً من سلسلة واحدة). إذا كنت ترغب في إضافة خيارات إضافية إلى fd
بعد قالب الأوامر ، فيمكنك إنهاءه باستخدام ;
.
يشبه بناء الجملة لتوليد أوامر GNU موازية:
{}
: رمز مميز للعنصر النائب الذي سيتم استبداله بمسار نتيجة البحث ( documents/images/party.jpg
).{.}
: مثل {}
، ولكن بدون تمديد الملف ( documents/images/party
).{/}
: العنصر النائب الذي سيتم استبداله باسم basename لنتيجة البحث ( party.jpg
).{//}
: والد المسار المكتشف ( documents/images
).{/.}
: الاسم الأساسي ، مع إزالة التمديد ( party
). إذا لم تقم بتضمين عنصر نائب ، فإن FD يضيف تلقائيًا {}
في النهاية.
بالنسبة إلى -x
/ --exec
، يمكنك التحكم في عدد الوظائف المتوازية باستخدام خيار -j
/ --threads
. استخدام --threads=1
للتنفيذ التسلسلي.
في بعض الأحيان نريد تجاهل نتائج البحث من دليل فرعي معين. على سبيل المثال ، قد نرغب في البحث في جميع الملفات والأدلة المخفية ( -H
) ولكن استبعاد جميع المباريات من دلائل .git
. يمكننا استخدام خيار -E
(أو --exclude
) لهذا الغرض. يستغرق نمط كروي تعسفي كحجة:
> fd -H -E .git …
يمكننا أيضًا استخدام هذا لتخطي الدلائل المثبتة:
> fd -E /mnt/external-drive …
.. أو لتخطي أنواع الملفات بعض:
> fd -E ' *.bak ' …
لجعل النماذج المستبعدة مثل هذه دائمة ، يمكنك إنشاء ملف .fdignore
. أنها تعمل مثل ملفات .gitignore
، ولكنها خاصة بـ fd
. على سبيل المثال:
> cat ~ /.fdignore
/mnt/external-drive
* .bak
ملحوظة
تدعم fd
أيضًا ملفات .ignore
التي تستخدمها برامج أخرى مثل rg
أو ag
.
إذا كنت تريد أن تتجاهل fd
هذه الأنماط على مستوى العالم ، فيمكنك وضعها في ملف التجاهل العالمي من fd
. عادة ما يكون هذا موجودًا في ~/.config/fd/ignore
في MacOs أو Linux ، و %APPDATA%fdignore
في Windows.
قد ترغب في تضمين .git/
في ملف fd/ignore
.git
لا يتم تضمين محتوياتها في الإخراج إذا كنت تستخدم خيار --hidden
.
يمكنك استخدام fd
لإزالة جميع الملفات والأدلة التي تتوافق مع نمط البحث الخاص بك. إذا كنت تريد فقط إزالة الملفات ، فيمكنك استخدام خيار --exec-batch
/ -X
للاتصال بـ rm
. على سبيل المثال ، لإزالة جميع ملفات .DS_Store
بشكل متكرر:
> fd -H ' ^.DS_Store$ ' -tf -X rm
إذا كنت غير متأكد ، اتصل دائمًا بـ fd
بدون -X rm
أولاً. بدلاً من ذلك ، استخدم خيار rm
S "Interactive":
> fd -H ' ^.DS_Store$ ' -tf -X rm -i
إذا كنت تريد أيضًا إزالة فئة معينة من الدلائل ، فيمكنك استخدام نفس التقنية. سيتعين عليك استخدام علامة rm
S --recursive
/ -r
لإزالة الدلائل.
ملحوظة
هناك سيناريوهات يمكن أن تسبب استخدام fd … -X rm -r
ظروف السباق: إذا كان لديك مسار مثل …/foo/bar/foo/…
وتريد إزالة جميع الدلائل المسمى foo
، فيمكنك أن ينتهي بك الأمر في موقف حيث تتم إزالة دليل foo
Outer أولاً ، مما يؤدي إلى (غير ضار) "" Foo/Bar/Foo ": لا يوجد مثل هذا الملف أو الدليل" في مكالمة rm
.
هذا هو إخراج fd -h
. للاطلاع على مجموعة كاملة من خيارات سطر الأوامر ، استخدم fd --help
والذي يتضمن أيضًا نص مساعدة أكثر تفصيلاً.
Usage: fd [OPTIONS] [pattern] [path]...
Arguments:
[pattern] the search pattern (a regular expression, unless '--glob' is used; optional)
[path]... the root directories for the filesystem search (optional)
Options:
-H, --hidden Search hidden files and directories
-I, --no-ignore Do not respect .(git|fd)ignore files
-s, --case-sensitive Case-sensitive search (default: smart case)
-i, --ignore-case Case-insensitive search (default: smart case)
-g, --glob Glob-based search (default: regular expression)
-a, --absolute-path Show absolute instead of relative paths
-l, --list-details Use a long listing format with file metadata
-L, --follow Follow symbolic links
-p, --full-path Search full abs. path (default: filename only)
-d, --max-depth <depth> Set maximum search depth (default: none)
-E, --exclude <pattern> Exclude entries that match the given glob pattern
-t, --type <filetype> Filter by type: file (f), directory (d/dir), symlink (l),
executable (x), empty (e), socket (s), pipe (p), char-device
(c), block-device (b)
-e, --extension <ext> Filter by file extension
-S, --size <size> Limit results based on the size of files
--changed-within <date|dur> Filter by file modification time (newer than)
--changed-before <date|dur> Filter by file modification time (older than)
-o, --owner <user:group> Filter by owning user and/or group
--format <fmt> Print results according to template
-x, --exec <cmd>... Execute a command for each search result
-X, --exec-batch <cmd>... Execute a command with all search results at once
-c, --color <when> When to use colors [default: auto] [possible values: auto,
always, never]
--hyperlink[=<when>] Add hyperlinks to output paths [default: never] [possible
values: auto, always, never]
-h, --help Print help (see more with '--help')
-V, --version Print version
دعنا نبحث عن مجلد منزلي عن الملفات التي تنتهي في [0-9].jpg
. أنه يحتوي على حوالي 750.000 دليل فرعي وحوالي 4 ملايين ملف. لتحليل متوسط والتحليل الإحصائي ، أنا أستخدم فرط الدقة. يتم تنفيذ المعايير التالية مع آلام القرص "الدافئة"/المملوءة مسبقًا (نتائج آلام القرص "الباردة" تظهر الاتجاهات نفسها).
لنبدأ مع find
:
Benchmark 1: find ~ -iregex '.*[0-9].jpg$'
Time (mean ± σ): 19.922 s ± 0.109 s
Range (min … max): 19.765 s … 20.065 s
find
على أسرع بكثير إذا لم يكن بحاجة إلى إجراء بحث منتظم التعبير:
Benchmark 2: find ~ -iname '*[0-9].jpg'
Time (mean ± σ): 11.226 s ± 0.104 s
Range (min … max): 11.119 s … 11.466 s
الآن دعنا نجرب نفس الشيء بالنسبة fd
. لاحظ أن fd
يقوم ببحث تعبير منتظم بشكل افتراضي. هناك حاجة إلى خيارات الخيارات -u
/ --unrestricted
هنا لإجراء مقارنة عادلة. وإلا فإن fd
لا يتعين على اجتياز المجلدات المخفية والمسارات التي تم تجاهلها (انظر أدناه):
Benchmark 3: fd -u '[0-9].jpg$' ~
Time (mean ± σ): 854.8 ms ± 10.0 ms
Range (min … max): 839.2 ms … 868.9 ms
بالنسبة لهذا المثال بالذات ، فإن fd
أسرع حوالي 23 مرة من find -iregex
وحوالي 13 مرة أسرع من find -iname
. بالمناسبة ، وجدت كلتا الأداة نفس ملفات 546 بالضبط؟
ملاحظة : هذا معيار واحد معين على آلة معينة . على الرغم من أننا أجرينا الكثير من الاختبارات المختلفة (ووجدنا نتائج متسقة) ، فقد تكون الأمور مختلفة بالنسبة لك! نحن نشجع الجميع على تجربتها بمفردهم. انظر هذا المستودع لجميع البرامج النصية اللازمة.
فيما يتعلق بسرعة FD ، يذهب الكثير من الائتمان إلى regex
ignore
الصناديق التي يتم استخدامها أيضًا في RIPGREP (تحقق من ذلك!).
fd
لا يجد ملفي! تذكر أن fd
يتجاهل الدلائل والملفات المخفية بشكل افتراضي. كما أنه يتجاهل الأنماط من ملفات .gitignore
. إذا كنت ترغب في التأكد من العثور على كل ملف ممكن على الإطلاق ، فاستخدم دائمًا الخيارات -u
/ --unrestricted
(أو -HI
لتمكين الملفات المخفية والتجاهل):
> fd -u …
يمكن fd
تلوين الملفات عن طريق الامتداد ، تمامًا مثل ls
. لكي ينجح هذا ، يجب تعيين متغير البيئة LS_COLORS
. عادةً ما يتم تعيين قيمة هذا المتغير بواسطة أمر dircolors
والذي يوفر تنسيق تكوين مناسب لتحديد الألوان لتنسيقات الملفات المختلفة. في معظم التوزيعات ، يجب تعيين LS_COLORS
بالفعل. إذا كنت على Windows أو إذا كنت تبحث عن متغيرات بديلة وأكثر اكتمالًا (أو أكثر ملونة) ، انظر هنا ، هنا أو هنا.
fd
أيضا يكرم متغير البيئة NO_COLOR
.
fd
يفسر نمط regex الخاص بي بشكل صحيح هناك الكثير من شخصيات Regex الخاصة (مثل []
، ^
، $
، ..) هي أيضًا أحرف خاصة في قذيفة. إذا كنت في شك ، تأكد دائمًا من وضع عروض أسعار واحدة حول نمط Regex:
> fd ' ^[A-Z][0-9]+$ '
إذا بدأ النمط الخاص بك باندفاعة ، فيجب عليك إضافة --
للإشارة إلى نهاية خيارات سطر الأوامر. خلاف ذلك ، سيتم تفسير النمط كخيار سطر الأوامر. بدلاً من ذلك ، استخدم فئة أحرف ذات حرف واصف واحد:
> fd -- ' -pattern '
> fd ' [-]pattern '
alias
es أو وظائف shell لا يمكن استخدام وظائف alias
es و shell لتنفيذ الأوامر عبر fd -x
أو fd -X
. في zsh
، يمكنك جعل الاسم المستعار عالميًا عبر alias -g myalias="…"
. في bash
، يمكنك استخدام export -f my_function
لإتاحة العمليات الفرعية. ستظل بحاجة إلى استدعاء fd -x bash -c 'my_function "$1"' bash
. لحالات الاستخدام الأخرى أو القذائف ، استخدم نص Shell (مؤقت).
fzf
يمكنك استخدام FD لإنشاء مدخلات لمكتشف خط الأوامر FZF:
export FZF_DEFAULT_COMMAND= ' fd --type file '
export FZF_CTRL_T_COMMAND= " $FZF_DEFAULT_COMMAND "
بعد ذلك ، يمكنك كتابة vim <Ctrl-T>
على المحطة الخاصة بك لفتح FZF والبحث من خلال نتائج FD.
بدلاً من ذلك ، قد ترغب في اتباع الروابط الرمزية وتضمين الملفات المخفية (ولكن استبعاد مجلدات .git
):
export FZF_DEFAULT_COMMAND= ' fd --type file --follow --hidden --exclude .git '
يمكنك حتى استخدام الإخراج الملون لـ FD داخل FZF عن طريق الإعداد:
export FZF_DEFAULT_COMMAND= " fd --type file --color=always "
export FZF_DEFAULT_OPTS= " --ansi "
لمزيد من التفاصيل ، راجع قسم TIPS من FZF README.
rofi
ROFI هو تطبيق قائمة إطلاق رسومي قادر على إنشاء قوائم عن طريق القراءة من stdin . ينشئ إخراج fd
في وضع rofi
S -dmenu
قوائم قابلة للبحث في الملفات والأدلة الغامضة.
قم بإنشاء قائمة متعددة القابلة للبحث عن حالة غير قابلة للبحث عن ملفات PDF ضمن الدليل $HOME
وافتح التحديد باستخدام عارض PDF الذي تم تكوينه. لسرد جميع أنواع الملفات ، إسقاط وسيطة -e pdf
.
fd --type f -e pdf . $HOME | rofi -keep-right -dmenu -i -p FILES -multi-select | xargs -I {} xdg-open {}
لتعديل القائمة التي يتم تقديمها بواسطة ROFI ، أضف وسيطات إلى أمر fd
. لتعديل سلوك البحث في ROFI ، أضف وسيطات إلى أمر rofi
.
emacs
يمكن أن تستخدم حزمة EMACS Find-In-Project FD للعثور على الملفات.
بعد تثبيت find-file-in-project
، أضف السطر (setq ffip-use-rust-fd t)
إلى ملف ~/.emacs
أو ~/.emacs.d/init.el
.
في EMACs ، قم بتشغيل Mx find-file-in-project-by-selected
للعثور على ملفات مطابقة. بدلاً من ذلك ، قم بتشغيل Mx find-file-in-project
لسرد جميع الملفات المتاحة في المشروع.
لتنسيق إخراج fd
كحركة ملف ، يمكنك استخدام أمر tree
مع- --fromfile
:
❯ fd | tree --fromfile
يمكن أن يكون هذا أكثر فائدة من تشغيل tree
بمفرده لأن tree
لا تتجاهل أي ملفات افتراضيًا ، ولا تدعم مجموعة من الخيارات الغنية كما تفعل fd
للتحكم في ما يجب طباعته:
❯ fd --extension rs | tree --fromfile
.
├── build.rs
└── src
├── app.rs
└── error.rs
على باش وما شابه ، يمكنك ببساطة إنشاء اسم مستعار:
❯ alias as-tree= ' tree --fromfile '
xargs
أو parallel
لاحظ أن fd
لديه ميزة مصممة لتنفيذ الأوامر مع خيارات -x
و -X
/ --exec-batch
--exec
إذا كنت تفضل ذلك ، فلا يزال بإمكانك استخدامه بالاشتراك مع xargs
:
> fd -0 -e rs | xargs -0 wc -l
هنا ، يخبر الخيار -0
FD بفصل نتائج البحث بواسطة الحرف الخالي (بدلاً من الخطوط الجديدة). بنفس الطريقة ، يخبره خيار -0
من xargs
بقراءة الإدخال بهذه الطريقة.
... وغيرها من توزيعات Linux المستندة إلى Debian.
إذا قمت بتشغيل Ubuntu 19.04 (Disco Dingo) أو الأحدث ، فيمكنك تثبيت الحزمة التي تم صيانتها رسميًا:
apt install fd-find
لاحظ أن الثنائي يسمى fdfind
لأن الاسم الثنائي fd
يستخدم بالفعل بواسطة حزمة أخرى. من المستحسن أنه بعد التثبيت ، يمكنك إضافة رابط إلى fd
من خلال تنفيذ الأمر ln -s $(which fdfind) ~/.local/bin/fd
، من أجل استخدام fd
بنفس الطريقة في هذه الوثائق. تأكد من أن $HOME/.local/bin
في $PATH
الخاص بك.
إذا كنت تستخدم إصدارًا أقدم من Ubuntu ، فيمكنك تنزيل أحدث حزمة .deb
من صفحة الإصدار وتثبيته عبر:
dpkg -i fd_9.0.0_amd64.deb # adapt version number and architecture
لاحظ أن حزم .deb في صفحة الإصدار لهذا المشروع لا تزال تسمية fd
القابلة للتنفيذ.
إذا قمت بتشغيل Debian Buster أو الأحدث ، فيمكنك تثبيت حزمة Debian التي تم الحفاظ عليها رسميًا:
apt-get install fd-find
لاحظ أن الثنائي يسمى fdfind
لأن الاسم الثنائي fd
يستخدم بالفعل بواسطة حزمة أخرى. من المستحسن أنه بعد التثبيت ، يمكنك إضافة رابط إلى fd
من خلال تنفيذ الأمر ln -s $(which fdfind) ~/.local/bin/fd
، من أجل استخدام fd
بنفس الطريقة في هذه الوثائق. تأكد من أن $HOME/.local/bin
في $PATH
الخاص بك.
لاحظ أن حزم .deb في صفحة الإصدار لهذا المشروع لا تزال تسمية fd
القابلة للتنفيذ.
بدءًا من Fedora 28 ، يمكنك تثبيت fd
من مصادر الحزمة الرسمية:
dnf install fd-find
يمكنك تثبيت حزمة FD من المصادر الرسمية ، شريطة أن يكون لديك مستودع مناسب ممكّن:
apk add fd
يمكنك تثبيت حزمة FD من repos الرسمية:
pacman -S fd
يمكنك أيضًا تثبيت FD من AUR.
يمكنك استخدام FD EBUILD من الريبو الرسمي:
emerge -av fd
يمكنك تثبيت حزمة FD من الريبو الرسمي:
zypper in fd
يمكنك تثبيت fd
عبر XBPS-Install:
xbps-install -S fd
يمكنك تثبيت حزمة FD من الريبو الرسمي:
apt-get install fd
يمكنك تثبيت حزمة FD من الريبو الرسمي:
eopkg install fd
يمكنك تثبيت حزمة fd
من Fedora Copr.
dnf copr enable tkbcopr/fd
dnf install fd
يتوفر أيضًا إصدار مختلف باستخدام Malloc أبطأ بدلاً من Jemalloc من epel8/9 repo باعتباره الحزمة fd-find
.
يمكنك تثبيت fd
مع Homebrew:
brew install fd
... أو مع macports:
port install fd
يمكنك تنزيل الثنائيات التي تم بناؤها مسبقًا من صفحة الإصدار.
بدلاً من ذلك ، يمكنك تثبيت fd
عبر SCOOP:
scoop install fd
أو عبر الشوكولاتة:
choco install fd
أو عبر Winget:
winget install sharkdp.fd
يمكنك تثبيت حزمة FD من الريبو الرسمي:
guix install fd
يمكنك استخدام Nix Package Manager لتثبيت fd
:
nix-env -i fd
يمكنك استخدام Flox لتثبيت fd
في بيئة Flox:
flox install fd
يمكنك تثبيت حزمة FD Find من الريبو الرسمي:
pkg install fd-find
على Linux و MacOS ، يمكنك تثبيت حزمة FD-Find:
npm install -g fd-find
مع شحن Rust's Package Manager ، يمكنك تثبيت FD عبر:
cargo install fd-find
لاحظ أن الإصدار 1.77.2 أو الأحدث مطلوب.
make
حاجة أيضًا إلى البناء.
تتضمن صفحة الإصدار ثنائيات مسبقة من Linux و MacOs و Windows. تتوفر الثنائيات المرتبطة بشكل ثابت أيضًا: ابحث عن المحفوظات مع musl
في اسم الملف.
git clone https://github.com/sharkdp/fd
# Build
cd fd
cargo build
# Run unit tests and integration tests
cargo test
# Install
cargo install --path .
يتم توزيع fd
بموجب شروط كل من ترخيص MIT وترخيص Apache 2.0.
راجع ملفات الترخيص وملفات الترخيص للحصول على تفاصيل الترخيص.