1개의 소스 디렉터리를 사용하여 여러 위치의 디렉터리를 처리하는 방법

1개의 소스 디렉터리를 사용하여 여러 위치의 디렉터리를 처리하는 방법

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

여러 웹사이트가 알 수 없는 여러 위치에서 이 폴더를 사용하고 있는데, 하나의 소스 경로에서 이 폴더를 모두 포함하려면 어떻게 해야 합니까? (예: /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.

관련 정보