i have a directory with a lot of subdirectories with a # infront of them:
#adhasdk
#ad18237
I want to rename them all and remove the # caracter I tried to do:
rename -n `s/#//g` *
but didn't seem to work.
-bash: s/#//g: No such file or directory
Any ideas on this. Thanks
I had to rename all folders inside a given folder. Each folder name had some text inside round braces. The following command removed the round braces from all folder names:
rename 's/(.+)//' *
I don't know whether it's just a typo when you typed it here, but that "rename" command should work if:
The "-n" tells it to not really do anything. The back-quotes are just wrong (they mean something but not what you want here).
Just use
use -n just to check that what you think it would happen really happens. In you example you have the clue about the wrong quotes used (backticks) in the error message
bash is trying to execute a command named
s/#//g
.No that using
g
(global) and not anchoring the regular expression you will replace any#
, not just the one in the first position.The problem is that you use backticks (`). You should use normal quotes: