파일을 부모 디렉토리로 옮기는 방법?


13

실수로 flac 폴더에 넣은 모든 mp3를 상위 폴더로 가져오고 싶습니다.

폴더의 깊이에 관계없이 일치하는 파일을 정확히 한 디렉토리 위로 이동하고 싶습니다.

파일을 선택하는 방법은 다음과 같습니다.

find . -path "*/flac/*" -name '*.mp3'

이것은 내 음악 폴더에서 작동하지만 여기에 붙어 있습니다. 내가 찾은 모든 솔루션은 파일을 현재 폴더의 부모로 이동하거나 고정 구조가 필요합니다.

답변:


24

시험:

find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

작동 원리

  1. find .

    현재 디렉토리에서 작업중인 find 명령을 시작하십시오.

  2. -path "*/flac/*"

    flac경로에 파일 만 선택

  3. -name '*.mp3'

    확장자가 인 파일 만 선택하십시오 .mp3.

  4. -execdir mv -t ../ {} +

    찾은 파일에 mv대해서는 파일이있는 디렉토리 에서 명령을 실행 하고 파일을 상위 디렉토리로 이동하십시오.

    이 특정 작업을 쉽게 수행 할 수있을뿐만 아니라 옵션 -execdir은 기존 -exec옵션 보다 안전 합니다.

단순화

find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +

1
좋은! 내가 원하는 것을 정확하게 수행합니다.
Marcel

+는 의식주의의 대안이다; ?
rackandboneman

@ Johnn1024 flac는 경로 와 동일한 중첩 디렉토리가 없다고 가정하면 */flac/flac/x.mp3그렇지 않으면 x.mp3파일이 두 레벨 위로 이동합니다.
αғsнιη

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.