find 명령을 사용하여 단일 파일을 검색하고 여러 폴더로 이동하는 방법은 무엇입니까?
다음 명령을 시도했지만 운이 없었습니다.
find /export/logs/tmp/logs/* -type f -name f_apec_`echo $(date +"%Y-%m-%d")`_1 -exec mv -v {} /export/logs/nucleus1/ /export/logs/nucleus2/ \;
답변1
파일을 여러 디렉터리로 이동할 수는 없지만 사용자 고유의 명령을 사용하여 모든 대상에 복사하고 마지막 디렉터리로 이동할 수 있습니다.
find /export/logs/tmp/logs/ -type f -name "f_apec_$(date +"%Y-%m-%d")_1" -exec echo cp -v '{}' /export/logs/nucleus1/ \; -exec echo mv -v '{}' /export/logs/nucleus2/ \;
다음 명령을 사용하여 파일을 여러 디렉터리에 복사할 수도 있습니다 xargs
.
echo dir1/ dir2/ dir3/ | xargs -n1 cp /path/to/Onefile
답변2
첫째, mv
파일을 복사하는 것이 아니라 이동하는 것입니다. 를 사용해야 cp
하지만 cp
여러 파일을 단일 대상에 복사할 수 있습니다.
이 작업을 여러 번 수행해야 합니다 cp
. 사용할 수 있는 한 가지 솔루션은 매개 변수를 여러 대상에 복사하는 간단한 스크립트를 만드는 것입니다. 그런 다음 해당 파일을 명령의 인수로 사용하여 스크립트를 실행 find .. -exec {}
하고 스크립트에서 여러 번 복사합니다.