5 ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ืฉื ื™ื ืฉืœ ืœื™ื ื•ืงืก

ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ื™ื•ืชืจ ืœืฆื“ ื›ืœื™ ืฉื•ืจืช ืคืงื•ื“ื” ื™ืฉื ื™ื ื™ื•ืชืจ, ืืชื” ื™ื›ื•ืœ ืœื™ื”ื ื•ืช ื™ื•ืชืจ ื•ืืคื™ืœื• ืœืฉืคืจ ืืช ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœืš.

5 ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ืฉื ื™ื ืฉืœ ืœื™ื ื•ืงืก

ื‘ืขื‘ื•ื“ื” ื”ื™ื•ืžื™ื•ืžื™ืช ืฉืœื ื• ืขืœ ืœื™ื ื•ืงืก/ื™ื•ื ื™ืงืก, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื›ืœื™ ืฉื•ืจืช ืคืงื•ื“ื” ืจื‘ื™ื - ืœืžืฉืœ, ื›ื“ื™ ืœื ื˜ืจ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื“ื™ืกืง ื•ืžืฉืื‘ื™ ื”ืžืขืจื›ืช. ื—ืœืง ืžื”ื›ืœื™ื ื”ืœืœื• ืงื™ื™ืžื™ื ื›ื‘ืจ ื–ืžืŸ ืจื‘. ืœื“ื•ื’ืžื”, top ื”ื•ืคื™ืข ื‘-1984, ื•ื”ืžื”ื“ื•ืจื” ื”ืจืืฉื•ื ื” ืฉืœ du ืžืชื•ืืจื›ืช ืœ-1971.

ื‘ืžื”ืœืš ื”ืฉื ื™ื, ื›ืœื™ื ืืœื• ืขื‘ืจื• ืžื•ื“ืจื ื™ื–ืฆื™ื” ื•ื”ื•ืขื‘ืจื• ืœืžืขืจื›ื•ืช ืฉื•ื ื•ืช, ืืš ื‘ืื•ืคืŸ ื›ืœืœื™ ื”ื ืœื ื”ืชืจื—ืงื• ืžื”ื’ืจืกืื•ืช ื”ืจืืฉื•ื ื•ืช ืฉืœื”ื, ื’ื ื”ืžืจืื” ื•ื”ืฉื™ืžื•ืฉื™ื•ืช ืฉืœื”ื ืœื ื”ืฉืชื ื• ื”ืจื‘ื”.

ืืœื• ื›ืœื™ื ื ื”ื“ืจื™ื ืฉืžื ื”ืœื™ ืžืขืจื›ืช ืจื‘ื™ื ื–ืงื•ืงื™ื ืœื”ื. ืขื ื–ืืช, ื”ืงื”ื™ืœื” ืคื™ืชื—ื” ื›ืœื™ื ื—ืœื•ืคื™ื™ื ื”ืžืฆื™ืขื™ื ื™ืชืจื•ื ื•ืช ื ื•ืกืคื™ื. ืœื—ืœืงื ืคืฉื•ื˜ ื™ืฉ ืžืžืฉืง ืžื•ื“ืจื ื™ ื•ื™ืคื”, ื‘ืขื•ื“ ืฉืื—ืจื™ื ืžืฉืคืจื™ื ืžืื•ื“ ืืช ื”ืฉื™ืžื•ืฉื™ื•ืช. ื‘ืชืจื’ื•ื ื–ื”, ื ื“ื‘ืจ ืขืœ ื—ืžืฉ ื—ืœื•ืคื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœ ืœื™ื ื•ืงืก.

1. ncdu ื ื’ื“ du

ืฉื™ืžื•ืฉ ื‘ื“ื™ืกืง ืฉืœ NCurses (NCDU.) ื“ื•ืžื” ืœ-du, ืืš ืขื ืžืžืฉืง ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื”ืžื‘ื•ืกืก ืขืœ ืกืคืจื™ื™ืช ื”ืงืœืœื•ืช. ncdu ืžืฆื™ื’ ืืช ืžื‘ื ื” ื”ืกืคืจื™ื•ืช ืฉืชื•ืคืก ืืช ืจื•ื‘ ืฉื˜ื— ื”ื“ื™ืกืง ืฉืœืš.

ncdu ืžื ืชื— ืืช ื”ื“ื™ืกืง ื•ืœืื—ืจ ืžื›ืŸ ืžืฆื™ื’ ืืช ื”ืชื•ืฆืื•ืช ืžืžื•ื™ื ื•ืช ืœืคื™ ื”ืกืคืจื™ื•ืช ืื• ื”ืงื‘ืฆื™ื ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ, ืœืžืฉืœ:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

ื ื™ืชืŸ ืœื ื•ื•ื˜ ื‘ื™ืŸ ื”ืขืจื›ื™ื ื‘ืืžืฆืขื•ืช ืžืงืฉื™ ื”ื—ืฆื™ื. ืื ืชืœื—ืฅ ืขืœ Enter, ncdu ื™ืฆื™ื’ ืืช ื”ืชื•ื›ืŸ ืฉืœ ื”ืกืคืจื™ื™ื” ืฉื ื‘ื—ืจื”:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ื–ื” ื›ื“ื™, ืœืžืฉืœ, ืœืงื‘ื•ืข ืื™ืœื• ืงื‘ืฆื™ื ืชื•ืคืกื™ื ื”ื›ื™ ื”ืจื‘ื” ืžืงื•ื ื‘ื“ื™ืกืง. ืืชื” ื™ื›ื•ืœ ืœืขื‘ื•ืจ ืœืกืคืจื™ื™ื” ื”ืงื•ื“ืžืช ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ ืžืงืฉ ื”ื—ืฅ ืฉืžืืœื”. ืขื ncdu ืืชื” ื™ื›ื•ืœ ืœืžื—ื•ืง ืงื‘ืฆื™ื ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ ืžืงืฉ d. ื”ื•ื ืžื‘ืงืฉ ืื™ืฉื•ืจ ืœืคื ื™ ื”ืžื—ื™ืงื”. ืื ื‘ืจืฆื•ื ืš ืœื”ืฉื‘ื™ืช ืืช ืชื›ื•ื ืช ื”ืžื—ื™ืงื” ื›ื“ื™ ืœืžื ื•ืข ืื•ื‘ื“ืŸ ืžืงืจื™ ืฉืœ ืงื‘ืฆื™ื ื™ืงืจื™ ืขืจืš, ื”ืฉืชืžืฉ ื‘ืืคืฉืจื•ืช -r ื›ื“ื™ ืœื”ืคืขื™ืœ ืžืฆื‘ ื’ื™ืฉื” ืœืงืจื™ืื” ื‘ืœื‘ื“: ncdu -r.

ncdu ื–ืžื™ืŸ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ื•ื”ืคืฆื•ืช ืœื™ื ื•ืงืก ืจื‘ื•ืช. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-dnf ื›ื“ื™ ืœื”ืชืงื™ืŸ ืื•ืชื• ืขืœ ืคื“ื•ืจื” ื™ืฉื™ืจื•ืช ืžื”ืžืื’ืจื™ื ื”ืจืฉืžื™ื™ื:

$ sudo dnf install ncdu

2. htop vs top

htop ื”ื•ื ืžืฆื™ื’ ืชื”ืœื™ื›ื™ื ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื“ื•ืžื” ืœ-top, ืื‘ืœ ืžื—ื•ืฅ ืœืงื•ืคืกื” ื”ื•ื ืžืกืคืง ื—ื•ื•ื™ืช ืžืฉืชืžืฉ ื ื—ืžื“ื”. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, htop ืžืฆื™ื’ ืืช ืื•ืชื• ืžื™ื“ืข ื›ืžื• top, ืื‘ืœ ื‘ืฆื•ืจื” ื•ื™ื–ื•ืืœื™ืช ื•ืฆื‘ืขื•ื ื™ืช ื™ื•ืชืจ.

ื›ื‘ืจื™ืจืช ืžื—ื“ืœ htop ื ืจืื” ื›ืš:

5 ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ืฉื ื™ื ืฉืœ ืœื™ื ื•ืงืก
ื‘ื ื™ื’ื•ื“ ืœืจืืฉ:

5 ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ืฉื ื™ื ืฉืœ ืœื™ื ื•ืงืก
ื‘ื ื•ืกืฃ, htop ืžืฆื™ื’ ืžื™ื“ืข ืกืงื™ืจื” ืขืœ ื”ืžืขืจื›ืช ื‘ื—ืœืง ื”ืขืœื™ื•ืŸ, ื•ื—ืœื•ื ื™ืช ืœื”ืคืขืœืช ืคืงื•ื“ื•ืช ื‘ืืžืฆืขื•ืช ืžืงืฉื™ ืคื•ื ืงืฆื™ื•ืช ื‘ื—ืœืง ื”ืชื—ืชื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืื•ืชื• ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ F2 ื›ื“ื™ ืœืคืชื•ื— ืืช ืžืกืš ื”ืชืฆื•ืจื”. ื‘ื”ื’ื“ืจื•ืช, ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืฆื‘ืขื™ื, ืœื”ื•ืกื™ืฃ ืื• ืœื”ืกื™ืจ ืžื“ื“ื™ื, ืื• ืœืฉื ื•ืช ืืช ืืคืฉืจื•ื™ื•ืช ื”ืชืฆื•ื’ื” ืฉืœ ืœื•ื— ื”ืกืงื™ืจื”.

ืœืžืจื•ืช ืฉืืชื” ื™ื›ื•ืœ ืœื”ืฉื™ื’ ืฉื™ืžื•ืฉื™ื•ืช ื“ื•ืžื” ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ื”ื”ื’ื“ืจื•ืช ืฉืœ ื”ื’ื™ืจืกืื•ืช ื”ืขื“ื›ื ื™ื•ืช ื‘ื™ื•ืชืจ ืฉืœ top, htop ืžืกืคืงืช ืชืฆื•ืจื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ ื ื•ื—ื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืžืขืฉื™ ื™ื•ืชืจ ื•ืงืœ ื™ื•ืชืจ ืœืฉื™ืžื•ืฉ.

3. tldr ื ื’ื“ ื’ื‘ืจ

ื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” tldr ืžืฆื™ื’ ืžื™ื“ืข ืขื–ืจื” ืคืฉื•ื˜ ืขืœ ืคืงื•ื“ื•ืช, ื‘ืขื™ืงืจ ื“ื•ื’ืžืื•ืช. ื–ื” ืคื•ืชื— ืขืœ ื™ื“ื™ ื”ืงื”ื™ืœื” ืคืจื•ื™ืงื˜ tldr pages.

ืจืื•ื™ ืœืฆื™ื™ืŸ ืฉ-tldr ืื™ื ื• ืชื—ืœื™ืฃ ืœืื“ื. ื–ื” ืขื“ื™ื™ืŸ ื›ืœื™ ื”ืคืœื˜ ื”ืงื ื•ื ื™ ื•ื”ืžืงื™ืฃ ื‘ื™ื•ืชืจ ืฉืœ ื“ืฃ ืื“ื. ืขื ื–ืืช, ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื ื”ืื“ื ืžื™ื•ืชืจ. ื›ืืฉืจ ืื™ื ืš ื–ืงื•ืง ืœืžื™ื“ืข ืžืงื™ืฃ ืขืœ ืคืงื•ื“ื”, ืืชื” ืจืง ืžื ืกื” ืœื–ื›ื•ืจ ืืช ื”ืฉื™ืžื•ืฉื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœื”. ืœื“ื•ื’ืžื”, ื“ืฃ ื”ืื™ืฉ ืฉืœ ื”ืคืงื•ื“ื” curl ืžื›ื™ืœ ื›ืžืขื˜ 3000 ืฉื•ืจื•ืช. ืขืžื•ื“ tldr ืขื‘ื•ืจ ืชืœืชืœ ื”ื•ื ื‘ืื•ืจืš 40 ืฉื•ืจื•ืช. ื”ืคืจื’ืžื ื˜ ืฉืœื• ื ืจืื” ื›ืš:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

  curl -O http://example.com/filename

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

  curl -O -L -C - http://example.com/filename

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR ืคื™ืจื•ืฉื• "ืืจื•ืš ืžื“ื™; ืœื ืงืจื": ื›ืœื•ืžืจ, ื”ืชืขืœืžื• ืžื˜ืงืกื˜ ื›ืœืฉื”ื• ื‘ื’ืœืœ ื”ื™ืจื™ื‘ื•ืช ื”ืžื•ื’ื–ืžืช ืฉืœื•. ื”ืฉื ืžืชืื™ื ืœื›ืœื™ ื–ื” ืžื›ื™ื•ื•ืŸ ืฉื“ืคื™ ื”ืื™ืฉ, ืœืžืจื•ืช ืฉื”ื ืฉื™ืžื•ืฉื™ื™ื, ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืืจื•ื›ื™ื ืžื“ื™.

ืขื‘ื•ืจ ืคื“ื•ืจื”, tldr ื ื›ืชื‘ ื‘ืคื™ื™ืชื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืื•ืชื• ื‘ืืžืฆืขื•ืช ืžื ื”ืœ dnf. ื‘ื“ืจืš ื›ืœืœ, ื”ื›ืœื™ ื“ื•ืจืฉ ื’ื™ืฉื” ืœืื™ื ื˜ืจื ื˜ ื›ื“ื™ ืœืคืขื•ืœ. ืื‘ืœ ืœืงื•ื— Python ืฉืœ ืคื“ื•ืจื” ืžืืคืฉืจ ื”ื•ืจื“ื” ื•ืื—ืกื•ืŸ ืฉืœ ื“ืคื™ื ืืœื” ืœื’ื™ืฉื” ืœื ืžืงื•ื•ื ืช.

4.jq ืœืขื•ืžืช sed/grep

jq ื”ื•ื ืžืขื‘ื“ JSON ืขื‘ื•ืจ ืฉื•ืจืช ื”ืคืงื•ื“ื”. ื–ื” ื“ื•ืžื” ืœ-sed ืื• grep, ืื‘ืœ ืชื•ื›ื ืŸ ื‘ืžื™ื•ื—ื“ ืœืขื‘ื•ื“ ืขื ื ืชื•ื ื™ JSON. ืื ืืชื” ืžืคืชื— ืื• ืžื ื”ืœ ืžืขืจื›ืช ืฉืžืฉืชืžืฉ ื‘-JSON ื‘ืžืฉื™ืžื•ืช ื™ื•ืžื™ื•ืžื™ื•ืช, ื–ื” ื”ื›ืœื™ ื‘ืฉื‘ื™ืœืš.

ื”ื™ืชืจื•ืŸ ื”ืขื™ืงืจื™ ืฉืœ jq ืขืœ ืคื ื™ ื›ืœื™ ืขื™ื‘ื•ื“ ื˜ืงืกื˜ ืกื˜ื ื“ืจื˜ื™ื™ื ื›ืžื• grep ื•-sed ื”ื•ื ืฉื”ื•ื ืžื‘ื™ืŸ ืืช ืžื‘ื ื” ื”ื ืชื•ื ื™ื ืฉืœ JSON, ืžื” ืฉืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ืฉืื™ืœืชื•ืช ืžื•ืจื›ื‘ื•ืช ื‘ื‘ื™ื˜ื•ื™ ื™ื—ื™ื“.

ืœื“ื•ื’ืžื”, ืืชื” ืžื ืกื” ืœืžืฆื•ื ืฉืžื•ืช ืžื™ื›ืœื™ื ื‘ืงื•ื‘ืฅ JSON ื–ื”:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

ื”ืคืขืœ ืืช grep ื›ื“ื™ ืœืžืฆื•ื ืืช ืฉื ื”ืžื—ืจื•ื–ืช:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep ื”ื—ื–ื™ืจ ืืช ื›ืœ ื”ืฉื•ืจื•ืช ื”ืžื›ื™ืœื•ืช ืืช ืฉื ื”ืžื™ืœื”. ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืขื•ื“ ื›ืžื” ืคืจืžื˜ืจื™ื ืœ-grep ื›ื“ื™ ืœื”ื’ื‘ื™ืœ ืื•ืชื•, ื•ืขื ืงืฆืช ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืจื™ ืœืžืฆื•ื ืืช ืฉืžื•ืช ื”ืžื›ื•ืœื•ืช.

ื›ื“ื™ ืœืงื‘ืœ ืืช ืื•ืชื” ืชื•ืฆืื” ื‘ืืžืฆืขื•ืช jq, ืคืฉื•ื˜ ื›ืชื•ื‘:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

ืคืงื•ื“ื” ื–ื• ืชื™ืชืŸ ืœืš ืืช ื”ืฉืžื•ืช ืฉืœ ืฉื ื™ ื”ืžื›ืœื™ื. ืื ืืชื” ืžื—ืคืฉ ืจืง ืืช ื”ืฉื ืฉืœ ื”ืžื™ื›ืœ ื”ืฉื ื™, ื”ื•ืกืฃ ืืช ื”ืื™ื ื“ืงืก ืฉืœ ืจื›ื™ื‘ ื”ืžืขืจืš ืœื‘ื™ื˜ื•ื™:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

ืžื›ื™ื•ื•ืŸ ืฉ-jq ื™ื•ื“ืข ืขืœ ืžื‘ื ื” ื”ื ืชื•ื ื™ื, ื”ื•ื ืžื™ื™ืฆืจ ืืช ืื•ืชืŸ ืชื•ืฆืื•ืช ื’ื ืื ืคื•ืจืžื˜ ื”ืงื•ื‘ืฅ ืžืฉืชื ื” ืžืขื˜. grep ื•-sed ืขืฉื•ื™ื™ื ืฉืœื ืœืขื‘ื•ื“ ื›ื”ืœื›ื” ื‘ืžืงืจื” ื–ื”.

ืœ-jq ื™ืฉ ืคื•ื ืงืฆื™ื•ืช ืจื‘ื•ืช, ืืš ื™ืฉ ืฆื•ืจืš ื‘ืžืืžืจ ื ื•ืกืฃ ื›ื“ื™ ืœืชืืจ ืื•ืชืŸ. ืœืžื™ื“ืข ื ื•ืกืฃ ื ื ืœื™ืฆื•ืจ ืงืฉืจ ืขืžื•ื“ ื”ืคืจื•ื™ืงื˜ jq ืื• ืœ-tldr.

5. fd ืœืขื•ืžืช ืœืžืฆื•ื

fd ืžื”ื•ื•ื” ื—ืœื•ืคื” ืคืฉื•ื˜ื” ืœื›ืœื™ ื”ืฉื™ืจื•ืช ืœืžืฆื•ื. Fd ืœื ื ื•ืขื“ ืœื”ื—ืœื™ืฃ ืื•ืชื• ืœื—ืœื•ื˜ื™ืŸ: ื™ืฉ ืœื• ืืช ื”ื”ื’ื“ืจื•ืช ื”ื ืคื•ืฆื•ืช ื‘ื™ื•ืชืจ ื”ืžื•ืชืงื ื•ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืžื’ื“ื™ืจื™ื ืืช ื”ื’ื™ืฉื” ื”ื›ืœืœื™ืช ืœืขื‘ื•ื“ื” ืขื ืงื‘ืฆื™ื.

ืœื“ื•ื’ืžื”, ื‘ืขืช ื—ื™ืคื•ืฉ ืงื‘ืฆื™ื ื‘ืกืคืจื™ื™ืช ืžืื’ืจ Git, fd ืžื•ืฆื™ื ืื•ื˜ื•ืžื˜ื™ืช ืงื‘ืฆื™ื ืžื•ืกืชืจื™ื ื•ืชืช-ืกืคืจื™ื•ืช, ื›ื•ืœืœ ืกืคืจื™ื™ืช .git, ื•ื›ืŸ ืžืชืขืœื ืžืชื•ื•ื™ื ื›ืœืœื™ื™ื ืžืงื•ื‘ืฅ .gitignore. ื‘ืกืš ื”ื›ืœ, ื–ื” ืžืื™ืฅ ืืช ื”ื—ื™ืคื•ืฉื™ื ืขืœ ื™ื“ื™ ื”ื—ื–ืจืช ืชื•ืฆืื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ื™ื•ืชืจ ื‘ื ื™ืกื™ื•ืŸ ื”ืจืืฉื•ืŸ.

ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, fd ืžื‘ืฆืข ื—ื™ืคื•ืฉ ืœื ืชืœื•ื™ ืจื™ืฉื™ื•ืช ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช, ืขื ืคืœื˜ ืฆื‘ืขื•ื ื™. ืื•ืชื• ื—ื™ืคื•ืฉ ื‘ืืžืฆืขื•ืช ืคืงื•ื“ืช find ืžื—ื™ื™ื‘ ื”ื–ื ืช ืคืจืžื˜ืจื™ื ื ื•ืกืคื™ื ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœืžืฆื•ื ืืช ื›ืœ ืงื‘ืฆื™ ื”-.md (ืื• .MD) ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช, ืชื›ืชื•ื‘ ืคืงื•ื“ืช find ื‘ืฆื•ืจื” ื”ื‘ืื”:

$ find . -iname "*.md"

ืขื‘ื•ืจ fd ื–ื” ื ืจืื” ื›ืš:

$ fd .md

ืื‘ืœ ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื, fd ื“ื•ืจืฉืช ื’ื ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช: ืœืžืฉืœ, ืื ื‘ืจืฆื•ื ืš ืœื›ืœื•ืœ ืงื‘ืฆื™ื ื•ืกืคืจื™ื•ืช ื ืกืชืจื•ืช, ืขืœื™ืš ืœื”ืฉืชืžืฉ ื‘ืืคืฉืจื•ืช -H, ืœืžืจื•ืช ืฉื‘ื“ืจืš ื›ืœืœ ื–ื” ืœื ื ื“ืจืฉ ื‘ืขืช ื—ื™ืคื•ืฉ.

fd ื–ืžื™ืŸ ืขื‘ื•ืจ ื”ืคืฆื•ืช ืœื™ื ื•ืงืก ืจื‘ื•ืช. ื‘ืคื“ื•ืจื” ื ื™ืชืŸ ืœื”ืชืงื™ืŸ ืื•ืชื• ื›ืš:

$ sudo dnf install fd-find

ืืชื” ืœื ืฆืจื™ืš ืœื•ื•ืชืจ ืขืœ ืฉื•ื ื“ื‘ืจ

ื”ืื ืืชื” ืžืฉืชืžืฉ ื‘ื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื—ื“ืฉื™ื ืฉืœ ืœื™ื ื•ืงืก? ืื• ืฉืืชื” ื™ื•ืฉื‘ ืืš ื•ืจืง ืขืœ ื”ื™ืฉื ื™ื? ืื‘ืœ ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ืฉ ืœืš ืฉื™ืœื•ื‘, ื ื›ื•ืŸ? ืื ื ืฉืชืฃ โ€‹โ€‹ืืช ื”ื—ื•ื•ื™ื” ืฉืœืš ื‘ืชื’ื•ื‘ื•ืช.

ืขืœ ื–ื›ื•ื™ื•ืช ื”ืคืจืกื•ื

ืจื‘ื™ื ืžืœืงื•ื—ื•ืชื™ื ื• ื›ื‘ืจ ื”ืขืจื™ื›ื• ืืช ื”ื™ืชืจื•ื ื•ืช ืฉืจืชื™ื ืืคื™ื™ื!
ื–ื” ืฉืจืชื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื ืขื ืžืขื‘ื“ื™ AMD EPYC, ืชื“ืจ ืœื™ื‘ืช ืžืขื‘ื“ ืขื“ 3.4 ื’ื™ื’ื”-ื”ืจืฅ. ื”ืชืฆื•ืจื” ื”ืžืงืกื™ืžืœื™ืช ืชืืคืฉืจ ืœื›ื ืœื™ื”ื ื•ืช - 128 ืœื™ื‘ื•ืช CPU, 512 GB RAM, 4000 GB NVMe. ืžื”ืจื• ืœื”ื–ืžื™ืŸ!

5 ื—ืœื•ืคื•ืช ืžื•ื“ืจื ื™ื•ืช ืœื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ืฉื ื™ื ืฉืœ ืœื™ื ื•ืงืก

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”