그래서 나는 다음을 달성하는 스크립트를 작성하려고합니다.
- 텍스트 파일에서 파일 UID를 읽습니다.
- UID를 기반으로 파일 위치 검색
- 경로 구조를 포함하여 파일을 새 위치로 복사합니다.
현재 수동으로 전송되는 미디어가 있는데 자동화하고 싶습니다. 각 미디어에는 UID가 있으며 모두 단일 파일로되어 있습니다. 미디어가 특정 위치에 있습니다. 부모 디렉토리가 어디에 있는지 알고 있지만 각 미디어 항목의 개별 디렉토리는 아닙니다.
현재 내 접근 방식은 다음과 같습니다.
- UID를 사용하여 파일 끝까지 while 루프
- UID를 기준으로 일치하는 미디어 경로 찾기
- 미디어 디렉토리의 구조 인 임시 파일의 출력 경로, 경로 구조 '../Medias/Shirts/shirtA.jpg', '../Medias/Shirts/shirtA_1.jpg'또는 '.. /Medias/Pants/pantsA.jpg '
- 임시 파일을 사용하여 미디어를 새 위치에 복사하십시오 (예 : 'cp $ MEDIAPATH / $ UID * $ TARGET')
그래서 두 가지 질문이 있습니다.
- 많은 미디어 항목이 있습니다. find 및 dirname을 사용하고 있으며 더 작은 샘플 데이터로 테스트하고 있습니다. 내 것보다 더 효율적인 방법이 있습니까?
FILEDIR="$(dirname "$(find ${MEDIADIR} -name "$UID" )")"
- 이제 미디어를 새로운 위치로 복사하기 위해 전체 경로에 관심이 없기 때문에이 작업을 수행하는 방법을 잘 모르겠습니다. 즉 미디어 항목의 경로는 '/home/user/media/pants/pantsA.jpg '/ pants / 만 필요합니다. 복사 할 때'../targetDIR/pants/ '등과 같은 구조를 유지하려고합니까?
혼란을 볼 수있어서 죄송합니다. 당신의 추론은 정확합니다. 내 실수. UID가 123이라고 말하면, 팬츠 디렉토리에 100 개의 미디어 파일이있을 수 있습니다. UID와 일치하는 미디어 파일, 즉 UID = 123을 가져 와서 123.jpg를 가져옵니다.
—
Grinch91
UID 1=shirtA.jpg
또는 $ UID가 실제로 파일 이름입니까?