Tato otázka zde již obsahuje odpovědi :Rekurzivně přejmenovávat soubory a adresáře
(4 odpovědi)
Uzavřeno před 5 lety.
Linux
(4 odpovědi)
Uzavřeno před 5 lety.
Takže mám scénář, který přidá 2 filmy dohromady pomocí zvuku z $1.audio
soubor. Co bych chtěl udělat, je přejmenovat jakýkoli soubor v adresáři pomocí:
*.mp4
Komu:
*.audio
Zachování původního názvu souboru.
Přijatá odpověď:
Můžete použít rename
příkaz. Není přenosný, ale existuje v různých formách v různých distribucích.
V CentOS/RHEL a pravděpodobně Fedora:
rename .mp4 .audio *.mp4
Mělo by to udělat. Z man rename
na CentOS 6:
SYNOPSIS
rename from to file...
rename -V
DESCRIPTION
rename will rename the specified files by replacing the first occur-
rence of from in their name by to.
V Ubuntu a pravděpodobně v jakékoli variantě Debianu:
rename 's/.mp4$/.audio/' *.mp4
měl by to udělat. Z man rename
na Ubuntu 14.04:
SYNOPSIS
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
DESCRIPTION
"rename" renames the filenames supplied according to the rule specified
as the first argument. The perlexpr argument is a Perl expression
which is expected to modify the $_ string in Perl for at least some of
the filenames specified. If a given filename is not modified by the
expression, it will not be renamed. If no filenames are given on the
command line, filenames will be read via standard input.
For example, to rename all files matching "*.bak" to strip the
extension, you might say
rename 's/.bak$//' *.bak