dir1
나는 이라는 이름의 약 800개의 하위 디렉터리를 포함하는 이라는 디렉터리를 가지고 있습니다 disp-001, disp-002, ... disp-800
. stdout
주어진 솔루션에 따라 파일이 포함되지 않은 하위 디렉터리 목록을 가져오고 있습니다 .여기~처럼
$ find . -type d \! -exec test -e '{}/stdout' \; -print
이제 파일이 포함되지 않은 하위 디렉터리를 다른 디렉터리인 dir2에 복사하려고 합니다. 나는 이것을 달성하기 위해 xargs를 사용합니다
$ find . -type d \! -exec test -e '{}/stdout' \; -print |xargs -I cp -r {} ../dir2
그러나 이로 인해 오류가 발생합니다.xargs: {}: No such file or directory
이 하위 디렉터리를 다른 디렉터리로 복사하는 방법
답변1
필요하지 않습니다 xargs
. find
처리할 수 있습니다.
find . -mindepth 1 -type d \! -exec test -e '{}/stdout' \; -exec echo cp -r '{}' ../dir2 \;
또는 비슷한 작업을 수행하는 find
최신 버전을 사용하십시오 (또는 끔찍하게도 800개의 포크!).\+
find
xargs
-mindepth 1
이 폴더를 제외 해야 합니다./
. 그렇지 않으면 모든 하위 디렉터리가 복사됩니다.- 이 명령 에는 복사를 수행하기 전에 어떤 프로세스가 실행되고 있는지 확인하는
-exec
디버그 옵션이 포함되어 있습니다.echo