다음과 같은 폴더 계층 구조가 있습니다.
MainFolder
|
| - 01
| - 02
| - 03
| - 04
| - 05
| - 06
| - 07
| - 08
| - 09
| - 10
그리고이 10 개의 폴더 각각 안에는 다른 10 개의 폴더가 있습니다. 총 10 개의 레벨이 있습니다.
가능한 모든 확장자 (zip 및 rar 포함)를 포함한 모든 파일을 FinalFolder라는 폴더로 이동하고 싶습니다.
다음 명령을 사용하려고합니다.
find MainFolder -type f -print0 | xargs -0 mv -t FinalFolder
그리고 "일"입니다. 전체적으로 5k 파일을 포착하고 있지만 25k 파일이 있다는 것을 알고 있으므로 모든 파일을 포착하지는 않습니다. 무엇이 문제일까요? 그리고 더 중요한 것은 그것을 고치는 방법?
더 간단한 찾기 명령을 사용하여 소스 디렉토리를 평면화하십시오.
경고 : 먼저 대상 디렉터리가 있는지 확인하십시오 !! (또는 당신으로 끝낼 수있는 한 에서만 FinalFolder라는 이름의 파일 하나 그 안에 파일의)
find MainFolder -type f -exec mv \{\} FinalFolder \;
편집하다
이름 충돌이있는 파일이 둘 이상있는 경우 파일을 덮어 쓸 수 있습니다. 이를 방지하려면 cp
대신 명령 을 사용하여 버전 번호를 추가 할 수 있습니다 mv
. 이것은 원래 디렉토리 트리가 그대로 유지된다는 부작용이 있으므로 처리 후 삭제해야 할 수도 있습니다.
find MainFolder -type f -exec cp --backup=numbered \{\} FinalFolder \;
이것이 계속 확인을 요청한다면 아마도 cp
명령이로 별칭이 지정 되었기 때문일 것입니다 cp -i
. 어떤 경우 /bin/cp
에 대신 사용cp
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다