
All with 폴더가 있습니다
AllFolders
F1
some_file_20170315_xyz.txt
some_file_20170314_xyz.txt
....
F2
some_other_file_20170315_abc.txt
some_other_file_20170314_abc.txt
...
...
Fn
폴더 구조도 복사되어 다음과 같이 보이도록 특정 날짜와 일치하는 모든 파일을 다른 빈 폴더에 복사하려면 어떻게 해야 합니까?
Folder_20170315
F1
some_file_20170315_xyz.txt
F2
some_other_file_20170315_abc.txt
답변1
한 가지 방법은 다음을 사용하는 것 find
입니다 cp
.
find . -iname '*20170315*' -exec cp --parents {} /tmp/Folder_20170315 \;
대상 폴더가 이미 존재해야 합니다. 원한다면 생성을 스크립팅할 수도 있습니다.
파일 이름을 확인하려는 것처럼 보이지만 find
파일 날짜를 확인하는 데에도 사용할 수 있습니다.
답변2
Mac에서는 사용할 수 없으므로 cp --parents
비슷한 문제를 해결하기 위해 두 가지 명령을 사용했습니다.
find . -name '*.example' | xargs -I FOO dirname FOO | xargs -I FOO mkdir -p /new/root/directory/FOO
find . -name '*.example' | xargs -I FOO cp FOO /new/root/directory/FOO
첫 번째 명령은 디렉터리 트리를 만듭니다. 두 번째는 파일을 복사합니다.
이것은 find
빠르다고 가정합니다. 성능 병목 현상이 발생 하는 경우 find
추가로 최적화하는 것이 좋습니다. 예를 들어 작업을 함수로 이동할 수 있습니다.