Let’s imagine that we have the following directory listing:
$ ls -ls /data/db1/
total 4778688
1488 -rw-r--r-- 1 dbmaster 760264 Feb 14 00:20 database_2016_file1
496 -rw-r--r-- 1 dbmaster 251529 Dec 29 12:45 database_2016_file2
808960 -rw-r--r-- 1 dbmaster 414187520 Jan 30 10:20 database_2016_file3
344 -rw-r--r-- 1 dbmaster 172544 Mar 18 00:42 database_2016_file4
958528 -rw-r--r-- 1 dbmaster 490764886 Feb 7 12:18 database_2016_file5
19480 -rw-r--r-- 1 dbmaster 9970189 Mar 2 17:31 database_2016_file6
2813952 -rw-r--r-- 1 dbmaster 1440743424 Mar 20 10:00 database_2016_file7
160336 -rw-r--r-- 1 dbmaster 82088969 Mar 22 10:30 database_2016_file8
14632 -rw-r--r-- 1 dbmaster 7490048 Mar 16 16:13 database_2016_file9
104 -rw-r--r-- 1 dbmaster 51525 Mar 2 16:18 database_2016_idx1
32 -rw-r--r-- 1 dbmaster 16114 Dec 14 18:55 database_2016_idx2
144 -rw-r--r-- 1 dbmaster 71056 Dec 6 13:32 database_2016_idx3
40 -rw-r--r-- 1 dbmaster 18214 Mar 9 12:38 database_2016_idx4
104 -rw-r--r-- 1 dbmaster 8686 Jan 5 09:10 database_2016_idx5
48 -rw-r--r-- 1 dbmaster 21316 Dec 14 20:01 database_2016_idx6
We would like to get a copy of those files named 2016 with a new name for the 2017 year, but we need to keep same content and retro-compatibility. For that, it’s easier to create some symbolic links of all those files instead of doing copies.
You can so use this command for creating those symlinks:
find /data/db1/ -type f -name "database_2016*" -exec bash -c 'ln -s $1 ${1/2016/2017}' -- {} ;
We are now getting this, as expected:
$ ls -ls /data/db1/
total 4778808
1488 -rw-r--r-- 1 dbmaster 760264 Feb 14 00:20 database_2016_file1
496 -rw-r--r-- 1 dbmaster 251529 Dec 29 12:45 database_2016_file2
808960 -rw-r--r-- 1 dbmaster 414187520 Jan 30 10:20 database_2016_file3
344 -rw-r--r-- 1 dbmaster 172544 Mar 18 00:42 database_2016_file4
958528 -rw-r--r-- 1 dbmaster 490764886 Feb 7 12:18 database_2016_file5
19480 -rw-r--r-- 1 dbmaster 9970189 Mar 2 17:31 database_2016_file6
2813952 -rw-r--r-- 1 dbmaster 1440743424 Mar 20 10:00 database_2016_file7
160336 -rw-r--r-- 1 dbmaster 82088969 Mar 22 10:30 database_2016_file8
14632 -rw-r--r-- 1 dbmaster 7490048 Mar 16 16:13 database_2016_file9
104 -rw-r--r-- 1 dbmaster 51525 Mar 2 16:18 database_2016_idx1
32 -rw-r--r-- 1 dbmaster 16114 Dec 14 18:55 database_2016_idx2
144 -rw-r--r-- 1 dbmaster 71056 Dec 6 13:32 database_2016_idx3
40 -rw-r--r-- 1 dbmaster 18214 Mar 9 12:38 database_2016_idx4
104 -rw-r--r-- 1 dbmaster 8686 Jan 5 09:10 database_2016_idx5
48 -rw-r--r-- 1 dbmaster 21316 Dec 14 20:01 database_2016_idx6
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file1 -> /data/db1/database_2016_file1
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file2 -> /data/db1/database_2016_file2
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file3 -> /data/db1/database_2016_file3
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file4 -> /data/db1/database_2016_file4
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file5 -> /data/db1/database_2016_file5
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file6 -> /data/db1/database_2016_file6
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file7 -> /data/db1/database_2016_file7
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file8 -> /data/db1/database_2016_file8
8 lrwxr-xr-x 1 dbmaster 30 Mar 24 13:59 database_2017_file9 -> /data/db1/database_2016_file9
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx1 -> /data/db1/database_2016_idx1
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx2 -> /data/db1/database_2016_idx2
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx3 -> /data/db1/database_2016_idx3
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx4 -> /data/db1/database_2016_idx4
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx5 -> /data/db1/database_2016_idx5
8 lrwxr-xr-x 1 dbmaster 29 Mar 24 13:59 database_2017_idx6 -> /data/db1/database_2016_idx6