CCCPaste

Prepend Number to File Name without loop BASH

#!/bin/bash
###################################################################### 
#Copyright (C) 2022  Kris Occhipinti
#https://filmsbykris.com

#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program.  If not, see .
###################################################################### 

#create 20 random files
touch $(grep -E '^[[:alpha:]]{5}$' /usr/share/dict/words|shuf |head -n20)

#this is a oneliner that will count the number of files in a directory
#and then prepend a number to the file name
#currently doesn't work in script, but copy and paste it to the shell
paste <(printf 'mv\n%.0s' {1..$(ls|wc -l)}) <(ls) <(ls|nl -n'rz' -s"_" -w3)|xargs -I {} bash -c "eval {}"