cpはディレクトリ内のファイルにアクセスできません。

cpはディレクトリ内のファイルにアクセスできません。

あるコンピュータから別のコンピュータに失われたファイルをコピーするスクリプトがあります。コードは

#!/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 ...を実行する必要があるようです。

関連情報