Page 1 of 1

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!

Shell (Linux/MacOS)...
Clear all

[Solved] Shell (Linux/MacOS) - Rename file to the directory name it is in, and move it out of the directory

1 Posts
1 Users
Famed Member Admin
Joined: 11 years ago
Posts: 2677
Topic starter  

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 ...