mv 파일 주문 mv 파일

mv 파일 주문 mv 파일

파일 처리 순서를 선택하는 방법은 무엇입니까 mv? (즉, 수동으로 호출할 수 있지만 경로를 유지하고 재귀적으로 작업하면 빠르게 문제가 될 수 있습니다.)

하나의 fs는 /mnt에 마운트되고 다른 하나는 /home에 마운트되어 있습니다.

/mnt에는 여러 폴더에 다양한 파일이 포함되어 있습니다.

모든 것을 /home으로 옮기고 싶어요

하지만 이동 순서를 선택하고 싶습니다.

예를 들어 /mnt/a/t/d/v/file이 /mnt/b/d/g/e/file보다 먼저 처리되기를 원합니다.

사용 가능한 종류가 있으면 사용할 수 있습니다(제 생각에는).

답변1

이 작업을 수행할 때:

mv /mnt/* /home/

/mnt/*일치하는 파일 목록(이 패턴의 경우 이는 에서 숨겨지지 않은 모든 파일임 /mnt)으로 확장하고 결과를 에 전달하므로 mv, , , ...을 별도 의 인수로 mv수신하는 것은 셸입니다 .mv/mnt/a/mnt/b/mnt/c/home/

기본적으로 쉘은 전역 확장을 어휘적으로 정렬합니다. zsh 셸에서는 o/ Oglob 한정자를 사용하여 순서를 변경할 수 있습니다.

/mnt/a는 어휘적으로 앞쪽으로 /mnt/b정렬되어 있기 때문에 앞쪽으로 이동됩니다 . 역순으로 이동하려면 다음을 수행하십시오.ab

mv /mnt/*(DOn) /home/

zsh에서(숨겨진 파일을 이동하기 위한 한정자를 추가함 D)

먼저 이동 하려면 /mnt/b다음을 수행하십시오.

set -o extendedglob
mv /mnt/b /mnt/^b(D) /home/

또는:

mv /mnt/b /home/ && mv /mnt/*(D) /home/

일반적 으로 재귀적으로 작동하지 않도록 mv몇 가지만 수행합니다 . rename()ing그러나 파일 시스템 간에 이동할 때는 이 작업을 수행할 수 없으므로 원본 파일을 재귀적으로 복사한 다음 삭제하는 방법을 사용합니다.

및 가 서로 다른 두 파일 시스템에 있는 mv /mnt/* /home/에서는 앞으로 이동되지만 또는 에 있는 파일의 경우 순서가 지정되지 않으며 일반적으로 이를 제어할 수 없습니다./mnt/home/mnt/a/mnt/b/mnt/a/mnt/b

이러한 순서를 결정하려면 개별 파일을 수동으로 이동해야 합니다. 또는 cpio -p지정된 pax -rw순서대로 파일을 복사한 다음 소스를 수동으로 삭제하라는 지시를 받을 수 있습니다.

관련 정보