GNU/Linux >> Znalost Linux >  >> Linux

Zkopírujte rozsah souborů v příkazovém řádku (ZSH/BASH)

Řešení 1:

Byli jste si velmi blízcí. Vaše otázka byla téměř správná syntaxe:

cp P10802{75..83}.JPG ~/Images

Řešení 2:

Chcete-li iterovat přes rozsah v bash:

for x in {0..10}; do echo $x; done

Totéž platí ve vašem případě:

for x in {272..283}; do cp P1080$x.JPG ~/Images; done

Řešení 3:

Zsh, s možností extendglob má globbing (pattern matching) operátor.

setopt extendedglob
echo P10802<75-83>.JPG

bude odpovídat názvům souborů v aktuálním adresáři, které odpovídají tomuto vzoru (pozor, P1080275.JPG odpovídá, ale také P108020000000075.JPG)

Na druhé straně operátor rozšíření řetězce {x...y} (podporovaný zsh a nejnovějšími verzemi bash a ksh93) expanduje na řetězce od x do y, bez ohledu na to, jaké soubory jsou v aktuálním adresáři.

cp P10802<75-83>.JPG ~there

zkopíruje odpovídající soubory, stejně jako

cp P10802{75..83}.JPG ~there

Chyby se však zobrazí, pokud například P1080281.JPG neexistuje.


Linux
  1. Bash tipy pro každý den na příkazovém řádku

  2. 5 nástrojů příkazového řádku pro rychlé vyhledání souborů v systému Linux

  3. Kopírování souborů a adresářů v Linuxu

  1. Předat argumenty příkazového řádku skriptu Bash?

  2. Příkaz nebyl nalezen v Zsh, ale nalezen v Bash?

  3. argumenty příkazového řádku pro spuštění dockeru

  1. Ukončovací kódy příkazového řádku Bash byly demystifikovány

  2. Rozdíl mezi ‚A‘ na příkazovém řádku (bash)??

  3. 5 Standardní dokončení K dispozici v příkazovém řádku Linux Bash