GNU/Linux >> Znalost Linux >  >> Linux

vytvoření adresáře z názvu souboru a přesunutí bash

Kolem = nejsou povoleny žádné mezery v úkolu.

dir="${file%%.*}"

Naopak mezery jsou povinné v testu.

if [ -e $dir ]; then
    ^       ^

Co se týče stylistických vylepšení, neuškodí udělat zbytečnou mkdir -p , takže se můžete zbavit if prohlášení.

Uvozovky nejsou v úkolu povinné, takže je můžete odstranit z dir= čára. Citace je však dobrý nápad všude jinde, takže ostatní uvozovky nemažte.

Možná by bylo dobré přidat navíc .* do smyčky for. Pokud tedy skript spustíte více než jednou, nebude se snažit přesunout nově vytvořené podadresáře. A úhledným trikem (i když ne nutně zlepšením) je zkrátit BR*.* W0*.* na {BR,W0}*.* .

for file in {BR,W0}*.*; do
    dir=${file%%.*}
    mkdir -p "$dir"
    mv "$file" "$dir"
done

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

  2. Získat úplnou cestu ze skriptu Bash?

  3. Příkaz přesunutí adresáře pro Linux

  1. Jak přesunout (a přepsat) všechny soubory z jednoho adresáře do druhého?

  2. Vytvoření nového adresáře v C

  3. Bash:provádění příkazů z chrootu a přepnutí uživatele

  1. Odstraňte všechny speciální znaky a velká a malá písmena z řetězce v bash

  2. Linux Bash:Přesun více různých souborů do stejného adresáře

  3. Zabraňte 10.2 ve vytváření adresáře Wolfram Mathematica na Linuxu