foo
특정 시점의 폴더에 있는 디렉터리 내용(하위 폴더 구조 포함)을 다른 디렉터리로 이동하고 싶습니다 . 파일이 원본 폴더에 추가된 경우 해당 파일을 이동하면 안 됩니다.
프로세스가 실행되는 동안 유사한 명령을 실행 mv foo/* bar/
하고 폴더에 파일을 추가하면 어떤 동작이 관찰될 수 있습니까?foo
파일이 이동됨
파일이 이동되지 않았습니다.
파일 이름이 현재 이동 중인 파일의 파일 이름 뒤에 오면 파일이 이동됩니다.
기타 행동
Windows/DOS에서는 동작이 다릅니까? 설명된 문제에 대한 가장 간단한 해결책은 무엇입니까?
답변1
아니요은닉처mv
명령에 와일드카드도 표시되지 않기 때문입니다 .
무슨 일이 일어나는가?명령줄와일드카드를 확장하고 확장된 목록을 다음에 전달합니다.mv
foo/1' and
따라서 foo/2 and
foo/3`이 있으면 다음을 실행하십시오.
mv foo/* bar/
확장될 예정이며실제로달리기
mv foo/1 foo/2 foo/3 bar/
셸 확장이 완료되고 mv
명령 실행이 시작되면 디렉토리에 대한 모든 변경 사항 foo
(예: foo/4
추가)은 명령의 일부가 되지 않으므로 보존됩니다.
이 프로세스를 이라고 합니다 globbing
.