GNU/Linux >> Znalost Linux >  >> Linux

Linux:Odeberte přípony souborů pro více souborů

Jako argument můžete explicitně předat prázdný řetězec.

rename .old '' *.old

A s podsložkami find . -type d -exec rename .old '' {}/*.old \; . {} je náhradou za záznam nalezený s find a \; ukončí arglist pro příkaz zadaný po -exec .


rename je mírně nebezpečný, protože podle jeho manuálové stránky:

rename přejmenuje zadané soubory nahrazením prvního výskyt...

S názvy souborů jako c.txt.parser.y to naštěstí udělá špatně .

Zde je řešení pomocí find a bash :

find -type f -name '*.txt' | while read f; do mv "$f" "${f%.txt}"; done

Mějte na paměti, že se to přeruší, pokud název souboru obsahuje nový řádek (vzácné, ale ne nemožné).

Pokud máte GNU find, je toto spolehlivější řešení:

find -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done

Používám toto:

find ./ -name "*.old" -exec sh -c 'mv $0 `basename "$0" .old`.new' '{}' \;

Verze přejmenování v Perlu může odstranit rozšíření následovně:

rename 's/\.txt$//' *.txt

To by mohlo být kombinováno s hledáním, aby se také vytvořily podsložky.


Linux
  1. Jak přejmenovat více souborů najednou v Linuxu

  2. KRename – výkonný dávkový přejmenovávač souborů pro Linux

  3. Jak přejmenovat více souborů dohromady v Linuxu pomocí 3 metod

  1. Jak přejmenovat více souborů pomocí funkce Najít?

  2. Čekat na dokončení stahování více souborů?

  3. Odstranění části názvu souboru pro více souborů v systému Linux

  1. Jak používat příkaz „najít“ k hledání více názvů souborů (přípon) v systému Linux

  2. Linux – získávání souborů pro aktuální datum v Linuxu?

  3. Použijte Najít a najít k vyhledání souborů v Linuxu