한 컴퓨터에서 다른 컴퓨터로 손실된 파일을 복사하는 스크립트가 있습니다. 코드는
#!/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 ...을 수행해야 하는 것 같습니다.