다른 디렉터리에서 다른 이름을 가진 파일을 복사합니다.

다른 디렉터리에서 다른 이름을 가진 파일을 복사합니다.

다른 디렉터리에 있는 다른 이름을 가진 여러 파일을 동일한 새 디렉터리에 복사하려고 합니다. 디렉터리 이름은 각 파일 이름의 시작 부분과 동일합니다. 예를 들어 디렉토리에서 파일을 디렉토리로 /mnt/data/files/xyz복사하고 싶습니다 . 디렉토리에서 파일을 디렉토리로 복사하고 싶습니다 .xyz_5/mnt/data/myname/new/mnt/data/files/abcabc_7/mnt/data/myname/new

이 작업을 수행하는 데 필요한 파일이 60개 있습니다. 이제 어떻게 해야 합니까?

cd /mnt/data/files/xyz;
cp -v *_5 /mnt/data/myname/new

모든 파일에 대해 이 작업을 수행합니다. 하지만 코드로 이 작업을 수행할 수 있나요?

답변1

질문은 그다지 명확하지 않지만 어쩌면 당신이하고 싶을 수도 있습니다

cp -v /mnt/data/files/xyz/*_5 /mnt/data/files/abc/*_7 /mnt/data/myname/new/

답변2

간단한 for 루프가 작업을 수행합니다.

for i in /mnt/data/files/*; do
  [ -d "$i" ] && cp -v "${i}/${i}_5" /mnt/data/myname/new/
done

for 루프는 디렉토리의 내용을 반복합니다 /mnt/data/files/. 루프 내부에서 [ -d "$i" ]항목이 디렉토리인지 확인하십시오. 그렇다면 이름이 같고 _5디렉토리에서 끝나는 파일을 대상 디렉토리에 복사하십시오 /mnt/data/myname/new/.

관련 정보