あるコンピュータから別のコンピュータに失われたファイルをコピーするスクリプトがあります。コードは
#!/bin/bash
MACHINE=machine2
DIRECTORY=/test/oracle/
rsh $MACHINE "cd /test/oracle/"
scp -rp machine2:/test/oracle/miss_files machine1:/test/oracle
cd /test/oracle/MT ; ls -ltrh > /tset/oracle/MT_extract_machine1
diff /test/oracle/MT_extract_machine1 /test/oracle/miss_files > /test/oracle/diffo
awk '{print$10}' /test/oracle/diff0 > /test/oracle/diffr
while read -r line ; do scp -rp $line /test/oracle/final_result ; done < /test/oracle/diffr
答え1
cd ...を実行してからlsを実行するので、パスは取得されず、ファイル名のみが取得されます。したがって、scpにはフルパスがなく、scp -rp $line ...を押すとscp -rp /test/oracle/$line ...を実行する必要があるようです。