Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!
Topics for particular software or systems: Start your topic link with the name of the application or system.
For example “MacOS X – Your question“, or “MS Word – Your Tip or Trick“.
Please note that switching to another language when reading a post will not bring you to the same post, in Dutch, as there is no translation for that post!
[Solved] Shell (Linux/MacOS) - Rename file to the directory name it is in, and move it out of the directory
(@hans)
Famed Member Admin
Joined: 12 years ago
Posts: 2822
Topic starter
April 27, 2022 9:15 AM
Little script that may be helpful to others.
I have several directories, each holding own or more files (with different file extensions!), something like this:
- Somedirectory
- File1.txt
- File2.doc
- AnotherDir
- Banana.png
- 1234.xls
- Somerandomname
- Test1.txt
- Test2.doc
And I watned this as a result:
- Somerandomname (empty dir)
- Somedirectory.txt
- Somedirectory.doc
- AnotherDir (empty dir)
- AnotherDir.png
- AnotherDir.xls
- Somerandomname (empty dir)
- Somerandomname.txt
- Somerandomname.doc
After some playing with Terminal/Shell (this will probably not work under Windows), this script will do that for all directories in the current directory:
for f in */* ;do fp=$(dirname "$f"); ext="${f##*.}" ; mv "$f" "$fp"."$ext" ;done
Hope this is useful to someone ...