1개의 소스 디렉터리로 여러 위치의 디렉터리를 덮어쓰는 방법

1개의 소스 디렉터리로 여러 위치의 디렉터리를 덮어쓰는 방법

phpthumb그래서 오늘 내 PHP 파일 중 하나가 오래된 것을 발견하여 전체 서버의 디렉토리를 덮어써야 했습니다 .

여러 웹 사이트가 알 수 없는 여러 위치에서 이 폴더를 사용하는데, 하나의 소스 경로에서 이러한 모든 디렉터리를 어떻게 덮어쓸 수 있습니까? (예: /home/test/testuser/phpthumb//home/*/*/phpthumb/)

답변1

이것은 작동합니다:

echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*

당신은 함께 일해야합니다 xargs. 안타깝게도 cp여러 대상에 복사할 수 없습니다. cp여러 소스를 처리할 수 있습니다.

설명:

  • echo /home/*/*/phpthumb: 모든 phpthumb디렉토리를 나열합니다.
  • xargs -t -n 1: xargs는 cp모든 라인을 개별적으로 호출해야 합니다.
  • cp -r /home/test/testuser/phpthumb/*명령이 xargs호출되어야 합니다. 대상 디렉토리는 끝에 xargs.

답변2

이 시도:

$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
    -exec cp /home/test/testuser/phpthumb/* {} \;

findphpthumb명령은 다음에서 찾습니다 /home.

  • -type d폴더 선택
  • -not -path제외하다test/testuser/phpthumb

각 폴더에 대해 cp명령을 수행합니다. test/testuser/phpthumb하위 폴더가 있는 트리인 경우 -R에 옵션을 추가합니다 cp.

관련 정보