rename oldFileextension newFileextension FilesToRename
Examples
# rename all .csv files into .txt files (focus only on *.csv files)
rename .csv .txt *.csv
# rename .fasta files into .fna files
# change all sampleID.fasta into sampleID.fna
rename .fasta .fna *.fasta
# add species name (e.g., E.coli) to all .bam files
# change all sampleID.bam files into sampleID_ecoli.bam
rename .bam _ecoli.bam *.bam
Use shell-loop instead "rename"
# for all .gz files, change ending .fq.gz into .fastq.gz
for file in *.gz; do
mv -- "$file" "${file%.fq.gz}.fastq.gz" ;
done
error: syntax error at (eval 1) line 1, near "."
error: syntax error at (user-supplied code), near "."
getting these errors, means you have another rename command (Ubuntu) which uses Perl regular expressions:
Ubuntu: rename all .csv files into .txt files (same as above, but using the "Perl" based rename)
rename 's/\.csv$/.txt/' *.csv
general: renaming a string at any position in filename (Example: change all 'dataNew' into 'data2015')
rename 's/dataNew/data2022/' *.csv
Perl based rename version - Ubuntu
change prefix of all textfiles
rename 's/^oldPrefix/newPrefic/' *.txt
# add prefix "projectABC_" to all .txt files
rename 's/^/projectABC_/' *.txt
# remove prefix "projectABC_" from all .txt files
rename 's/^projectABC_//' *.txt
Use shell loop if Ubuntu "rename" does not work (non-Perl rename command)
# add prefix "projectABC_" to all .txt files
for file in *.txt ; do mv "$file" "projectABC_$file" ; done
# remove prefix "projectABC_" from all .txt files
for file in projectABC_*.txt; do mv "$file" "${file#projectABC_}"; done
# add suffix ".txt" to all files in a folder
for FILE in *; do mv ${FILE} ${FILE}.txt; done