모든 하위 디렉터리에서 특정 확장명의 모든 파일 복사
unix에서는 특정 확장자를 가진 모든 파일(모든 엑셀 파일)을 모든 하위 디렉터리에서 다른 디렉터리로 복사합니다.다음과 같은 명령이 있습니다.
cp --parents `find -name \*.xls*` /target_directory/
이 명령의 문제는 다음과 같습니다.
디렉토리 구조도 복사하고 파일만 원합니다(모든 파일이 /target_directory/로 끝나야 함).
파일 이름에 공백이 있는 파일은 복사하지 않습니다(이들은 꽤 많습니다).
이 문제들에 대한 해결책이 있습니까?
--parents
디렉터리 구조를 복사하는 것이므로 제거해야 합니다.
당신이 이 글을 쓴 방식은find
실행되고, 출력은 명령행에 배치됩니다.cp
파일 이름을 구분하는 공백과 파일 이름 내의 공백을 구분할 수 없습니다.같은 것을 하는 것이 좋습니다.
$ find . -name \*.xls -exec cp {} newDir \;
어느 곳에서cp
의 각 파일 이름에 대해 실행됩니다.find
파일 이름을 찾아서 올바르게 전달했습니다.이 기술에 대한 자세한 내용은 다음과 같습니다.
위의 모든 것 대신에, 당신은 zsh를 사용할 수 있고 간단하게 입력할 수 있습니다.
$ cp **/*.xls target_directory
zsh
와일드카드를 확장하여 하위 디렉터리를 포함할 수 있으며 이러한 작업을 매우 쉽게 수행할 수 있습니다.
위의 모든 것들로부터, 저는 이 버전을 생각해냈습니다.이 버전은 Mac 복구 터미널에서도 사용할 수 있습니다.
find ./ -name '*.xsl' -exec cp -prv '{}' '/path/to/targetDir/' ';'
현재 디렉터리에서 xsl 확장자가 있는 파일을 재귀적으로 모든 하위 디렉터리에서 찾습니다.대상 디렉터리에 모두 복사됩니다.
cp 플래그는 다음과 같습니다.
- p - 파일의 속성 유지
- r - 재귀적인
- v - verbose(복사할 내용을 알려줍니다)
저도 비슷한 문제가 있었습니다.다음을 사용하여 해결했습니다.
find dir_name '*.mp3' -exec cp -vuni '{}' "../dest_dir" ";"
그'{}'
그리고.";"
각 파일에서 복사본을 실행합니다.
저도 이것을 직접 해야만 했습니다.저는 cp:에 대한 --parents 인수를 통해 그것을 했습니다.
find SOURCEPATH -name filename*.txt -exec cp --parents {} DESTPATH \;
2022년 zsh 솔루션은 Linux Bash에서도 작동합니다.
cp **/*.extension /dest/dir
예상대로 작동합니다.
find [SOURCEPATH] -type f -name '[PATTERN]' |
while read P; do cp --parents "$P" [DEST]; done
--parents를 제거할 수 있지만 여러 파일이 동일한 이름을 가질 경우 충돌 위험이 있습니다.
macOS Ventura 13.1, zsh에서 복사할 파일이 너무 많을 때 다음 오류를 보았습니다.
zsh: argument list too long: cp
사용해야 함find
와 함께 지휘함.cp
파일을 대상으로 복사하려면:
find ./module/*/src -name \*.java -print | while read filelocation; do cp $filelocation mydestinationlocation; done
언급URL : https://stackoverflow.com/questions/15617016/copy-all-files-with-a-certain-extension-from-all-subdirectories
'itsource' 카테고리의 다른 글
Git 저장소의 하위 디렉터리에 대한 Git 로그 기록(즉, 모든 관련 커밋)을 표시하는 방법 (0) | 2023.05.02 |
---|---|
Linux에서 시간 명령의 출력을 파일로 리디렉션하는 방법은 무엇입니까? (0) | 2023.05.02 |
Bash에서 명령 출력을 숨기는 방법 (0) | 2023.05.02 |
동기 코드를 비동기 호출로 래핑 (0) | 2023.05.02 |
~/.composer/vendor/bin 디렉토리를 PATH에 배치하는 방법은 무엇입니까? (0) | 2023.05.02 |