Hi,
I have the following subfolder with files:
/data/a/1/xxx.txt
/data/b/2/yyy.txt
/data/c/3/zzz.txt
And i have a set of new folders which have exactly the same structure as above but different disk without the files:
/data_02/a/1/
/data_02/b/2/
/data_02/c/3/
Now i would like to have a command that i can do a soft link (ln -s) for all files to the respective directory like below:
/data_02/a/1/xxx.txt -> /data/a/1/xxx.txt
/data_02/b/2/yyy.txt ->/data/b/2/yyy.txt
/data_02/c/3/zzz.txt ->/data/c/3/zzz.txt
Please advice.
for i in `find /data/ -type f -name "*.txt"`
do
#remove parent directory
subDirPath=nawk -F"/" '{for(i=1;i<=NF;i++)printf("%s/",$i)}'
echo $subDirPath
#check the command before create link
echo "ln -s $i /data_02/$subDirPath"
#ln -s $i /data_02/$subDirPath
done
[mute@geek ~/links]$ find . -type f | { while read F; do echo ln -s /data/${F#./} /data_02/${F#./}; done }
ln -s /data/b/2/yyy.txt /data_02/b/2/yyy.txt
ln -s /data/a/1/xxx.txt /data_02/a/1/xxx.txt
ln -s /data/c/3/zzz.txt /data_02/c/3/zzz.txt
I try to use your command but i got error.
[j0345619@x-kul-012 PROFILS]$ find . -type f | { while read F; do echo ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/${F#./} /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/${F#./}; done }
Missing }.
[j0345619@x-kul-012 PROFILS]$
Please advice
---------- Post updated at 12:04 PM ---------- Previous update was at 11:57 AM ----------
Hi Raj,
Thanks for your reply. But i got the error when running your script.
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-252/SEISMIC/CE93 -252.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
./link_files: line 4: -F/: No such file or directory
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-248/SEISMIC/CE93 -248.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
./link_files: line 4: -F/: No such file or directory
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-248/SEISMIC/CE93 -248.Mig_2ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
./link_files: line 4: -F/: No such file or directory
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-266/SEISMIC/CE93 -266.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
./link_files: line 4: -F/: No such file or directory
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-263/SEISMIC/CE93 -263.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
./link_files: line 4: -F/: No such file or directory
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-263/SEISMIC/CE93 -263.Mig_2ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/
The real directory structure is like below:
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-240/SEISMIC/CE93-240.Mig_4ms.xt
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-243/SEISMIC/CE93-243.Mig_2ms.xt
I want to link all the .xt files to :
/data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/CE93-240/SEISMIC
/data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/CE93-243/SEISMIC
Please advice
ok, just execute the below command and show some result.
find /data_drobo/ -type f -name "*.txt"
---------- Post updated at 02:53 PM ---------- Previous update was at 02:47 PM ----------
execute this.. and let me know.. not tested
for i in `find /data_drobo/ -type f -name "*.txt"`
do
#remove parent directory
subDirPath=`echo $i | nawk -F"\/" '{for(i=1;i<=NF;i++)printf("%s/",$i)}'`
echo $subDirPath
#check the command before create link
echo "ln -s $i /data/archive_data02/$subDirPath"
#ln -s $i /data_02/$subDirPath
done
Hi Kamaraj,
I have edited a bit of your script base on the directory. Firstly i got the message "nawk: command not found", so i change teh script to awk.But i still run without success.
Below is the script that i run:
for i in `find /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/ -type f -name "*.txt"`
do
#remove parent directory
subDirPath=`echo $i | awk -F"\/" '{for(i=1;i<=NF;i++)printf("%s/",$i)}'`
echo $subDirPath
#check the command before create link
echo "ln -s $i /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/$subDirPath"
#ln -s $i /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS/$subDirPath
done
And below is the error that i got when running the script above:
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_2ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_2ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_2ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_4ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-246A/SEISMIC/CE93-246A.Mig_4ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-260/SEISMIC/CE93-260.Mig_4ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-260/SEISMIC/CE93-260.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-260/SEISMIC/CE93-260.Mig_4ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_4ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_4ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_2ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_2ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-250/SEISMIC/CE93-250.Mig_2ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_4ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_4ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_4ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
/data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_2ms.xt/
ln -s /data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_2ms.xt /data/archive_data02/MALAY_BASIN_INTERP/DATA/2D/CE93/PROFILS//data_drobo/MY_MALAY_BASIN_2011/DATA/2D/CE93/PROFILS/CE93-262/SEISMIC/CE93-262.Mig_2ms.xt/
awk: warning: escape sequence `\/' treated as plain `/'
Please advice.
Kamaraj,
Could you please help me on this problem....
Please advice.
Thanks,
Siew Fong