In Linux I sometimes rename files like this:
mv dir1/dir2/dir3/file.txt dir1/dir2/dir3/file.txt.old
Note that I want to just rename the file, not move it to another directory.
Is there a command that would allow me to do a shorthand version of that command? I am thinking something like:
mv dir1/dir2/dir3/file.txt file.txt.old
or maybe even something like (to just append to the name):
mv dir1/dir2/dir3/file.txt {}.old
My goal is not to have to specify the complete path again.
I know those "examples" I wrote don't work, but it is just an idea of what I want to accomplish.
I don't want to have to cd in to the directory.
Best Answer
for a single file try
where the
X{a,b}
construct expand toXa Xb
, you can have a preview usingto see if it fit your need.
note:
that for multiple files
is unlikely to expand to what you want. (this will expand to a mixed of file.txt file1.txt.old file2.txt ...)
{txt,txt.old}
can be shorterned to{,.old}
as per commentif directory name are unambigous, wildcard can be used.
for multiple file use
rename
drop
-n
to have effective rename.