GNU/Linux >> Znalost Linux >  >> Linux

[Bash Tipy] Jak na cd a ls v jednom příkazu

Kdykoli cd do adresáře, další věc, kterou spontánně udělám – výpis obsahu tohoto adresáře pomocí ls příkaz. Nevím, jestli to děláte všichni, ale předpokládám, že někteří z vás tento zvyk mají. Bylo by lepší, kdybychom spojili funkčnost cd a ls v jednom příkazu, ne? Tento stručný průvodce vysvětluje, jak automaticky vypsat obsah adresáře, kdykoli do něj v Linuxu cd.

Jak cd a ls v jednom příkazu v Bash

Vezměte prosím na vědomí, že nemluvím o příkazech jedné řádky. Například můžete provést cd a ls pomocí jednořádkového příkazu, jak je uvedeno níže.

$ cd path-to-dir && ls

Nebo,

$ cd path-to-dir ; ls

Ano, funguje to! Ale to není předmětem této příručky. Uděláme to pomocí jednoduché funkce BASH . Tento trik bude fungovat ve všech distribucích Linuxu a Unixu, které podporují BASH.

Otevřete svůj ~/.bashrc soubor ve vašem oblíbeném editoru:

$ nano ~/.bashrc

Na konec přidejte následující řádky:

cdls() {
        local dir="$1"
        local dir="${dir:=$HOME}"
        if [[ -d "$dir" ]]; then
                cd "$dir" >/dev/null; ls --color=auto
        else
                echo "bash: cdls: $dir: Directory not found"
        fi
}

Zde jsem použil název funkce jako cdls () kvůli snadnému zapamatování! Tuto funkci si můžete pojmenovat, jak chcete. Nahraďte také ls --color=auto parametr s vlastním. Uložte a zavřete soubor.

Spusťte následující příkaz, aby se změny projevily.

$ source ~/.bashrc

Nyní vypište obsah adresáře automaticky, kdykoli do něj vložíte cd, jak je uvedeno níže.

Příklad:

$ cdls /var/log/
alternatives.log  btmp                   dpkg.log   kern.log   syslog               wtmp
apt               cloud-init.log         faillog    landscape  syslog.1
auth.log          cloud-init-output.log  installer  lastlog    tallylog
bootstrap.log     dist-upgrade           journal    lxd        unattended-upgrades
[email protected]:/var/log$ pwd
/var/log

Do ~/.bashrc můžete také přidat následující mnohem jednodušší funkci soubor.

cdls() {
        cd "[email protected]" && ls;
}

Zdrojový kód ~/.bashrc souboru, aby se změny projevily. Také nepoužívejte obě funkce současně se stejným názvem. Buď použijte jednu funkci, nebo použijte jiný název (např. cdls a cl ) pro každou funkci.

Než jsem poznal tento trik, obvykle dělám:

$ cd /var/log/

A pak;

$ ls

Nebo,

$ cd /var/log/ && ls

Už ne! Nyní mohu být schopen vypsat jakýkoli obsah adresáře, kdykoli do něj cd. To je užitečné, když často pracujete s velkým počtem adresářů.

Jedna nevýhoda tohoto triku je, že budete muset počkat několik sekund až několik minut, když cd do adresáře, který obsahuje stovky a tisíce souborů. V takových případech použijte normální cd příkaz.

Doporučené čtení:

  • Přejmenovávejte soubory bez zadávání celého jména dvakrát v systému Linux
  • Tipy pro Bash – Jak cp nebo mv a cd jedním příkazem
  • Různé způsoby zobrazení obsahu adresáře bez použití příkazu ls
  • Funkce Bash pro extrahování archivů souborů různých typů

Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Co je příkaz cURL a jak jej používat?

  3. Co je to pošta a jak se v ní orientuje?

  1. Jak odstranit adresář a složku v Linuxu?

  2. Jak zamknout a odemknout uživatele v Linuxu

  3. Jak fungují volby '-s', '-t' a '-c' příkazu tr v Unixu?

  1. Jak nainstalovat dig na CentOS 7 a 8

  2. Jak stahovat a extrahovat soubory Tar jedním příkazem

  3. Linux Tail Command:Co to je a jak jej používat