GNU/Linux >> Znalost Linux >  >> Linux

Vytváření mnoha adresářů pomocí Mkdir?

Chtěl bych vytvořit mnoho adresářů pomocí mkdir . Každý název adresáře se bude skládat z předpony (řetězec) a indexu (celého čísla). Předpokládejme, že bych chtěl, aby předpona byla „s“ a indexy v rozsahu od 1 do 50. To znamená, že bych chtěl vytvořit adresáře s názvem:

s1 , s2 , … , s49 , s50

Existuje způsob, jak to udělat automaticky pomocí mkdir ? Děkujeme za váš čas.

Přijatá odpověď:

Můžete to udělat pomocí skriptu shellu.

Pure sh – to bude fungovat i na shellech před POSIX Bourne:

n=1;
max=50;
while [ "$n" -le "$max" ]; do
  mkdir "s$n"
  n=`expr "$n" + 1`;
done

Chcete-li vytvořit velký počet adresářů, můžete skript urychlit jeho zmenšením na jediné volání mkdir stejně jako použití vestavěných shellů pro testování a aritmetiku. Takhle:

n=1
max=50
set -- # this sets [email protected] [the argv array] to an empty list.

while [ "$n" -le "$max" ]; do
    set -- "[email protected]" "s$n" # this adds s$n to the end of [email protected]
    n=$(( $n + 1 ));
done 

mkdir "[email protected]"

Zsh, ksh93 nebo bash to značně usnadňují, ale měl bych zdůraznit, že to není zabudováno do mkdir a nemusí fungovat v jiných shellech. Ve větších případech to může být také ovlivněno omezením počtu nebo celkové velikosti argumentů, které mohou být předány příkazu.

mkdir s{1..50}

Linux
  1. Vytváření, mazání a správa adresářů v systému Linux

  2. Vytváření a odstraňování souborů a adresářů pod Linuxem

  3. Pomocí ls vypíšete adresáře a jejich celkové velikosti

  1. Jak šifrovat a dešifrovat soubory a adresáře pomocí Tar a OpenSSL

  2. Je možné rekurzivně vytvářet složky pomocí skriptu shell?

  3. Jak mohu vytvořit více adresářů najednou v adresáři?

  1. Jak nahrávat nebo stahovat soubory/adresáře pomocí sFTP v Linuxu

  2. 5 příkladů pro vytvoření více adresářů v Linuxu

  3. Vytváření SOCKS Web Proxy pomocí SSH