복사하는 동안 *와 *. *의 차이점은 무엇입니까?


19

다음 두 명령의 차이점은 무엇입니까?

cp -rp /dir1/*.* /dir2/
cp -rp /dir1/* /dir2/

12
두 대답이 모두 맞지만 주목해야 할 것이 하나 있다고 생각합니다. 숨겨진 파일 ( .like로 시작하는 파일 .bashrc)은 해당 명령으로 복사되지 않습니다. 해당 파일을 복사하려면 .*모든 파일 (숨겨진 파일 포함)을 복사하려면 명령이 다음 과 같이 명시 적으로 표시되어야 합니다.cp -rp /dir1/.* /dir1/* /dir2/
YoMismo

간단히 말해서 *.*MS-DOS / Windows 방식이며 *UNIX / Linux 방식입니다. 유닉스 접미사에서 (파트 후 파일 - 종료 .- 같은 .txt또는 것은 .jpg)에서 MS-DOS합니다 ... 선택 사항입니다 .(점) 및 접미사 그래서 모든 파일을 일치하도록 요구되었다, 하나의 사용 *.*- 모든 텍스트 파일과 일치하는 동안 , 하나를 사용 *.txt합니다.
Baard Kopperud

@BaardKopperud 접미사는 필요하지 않았습니다 . 이름이 같 FILENAME거나 심지어 같은 파일이있을 수 있습니다 FILE.
Ruslan

1
@Ruslan이지만 *.*DOS 에서는 이름이 '실제' 이거나 (빈 확장명으로) 파일 이름 FILENAME또는 여전히 일치합니다 . 유닉스에서, 이름은 '진짜'는 나 때문에, 일치하지 않습니다. FILEFILENAME.FILE.FILENAMEFILE*.*
Jonathan Cast

1
@Ruslan 실제 DOS에서는 필요했지만 Windows에서는 더 이상 필요하지 않습니다. 위로의 옛날 , 하나는 *단지 일치하는 것 FILE, 그리고 없습니다 FILE.TXT .
Random832

답변:


25

*.*중간 또는 끝에 점이있는 파일 이름 만 일치합니다. 예를 들면 다음과 같습니다.

abc.jpg
def. 

*위의 파일 이름과 점이없는 이름을 일치시킵니다. 예를 들면 다음과 같습니다.

data

6
어쩌면 안티 관용구 *.*는 8 + 3 파일 이름의 날에 MS-DOS의 모든 파일을 다시 일치시키는 올바른 방법이었습니다. MS-DOS에서 점은 필수입니다 (확장자가없는 파일에는 암시적임).
tripleee

11
@ Mark, 아니요, 그렇게 생각하지 않습니다. dotglob이 켜져 있지 않으면
David Dai

11
허, 나는 그 *.*일치를 결코 깨닫지 foo.못했지만 .foo. 그 비대칭은 끔찍합니다.
jamesdlin

9
bash 매뉴얼의 @jamesdlin : 파일 이름 확장에 패턴을 사용할 때 문자 '.' 쉘 옵션 dotglob이 설정되어 있지 않으면 파일 이름의 시작 부분이나 슬래시 바로 다음에 명시 적으로 일치해야합니다.
David Dai

1
@jamesdlin. 1969 년경 Unix 1 일 이후로 점으로 시작하는 디렉토리 항목은 숨겨진 것으로 간주되었습니다 . 원래 이것은 항상 모든 디렉토리 (빈 디렉토리)에 존재 하는 .(현재 디렉토리) 및 ..(상위 디렉토리) 항목 을 건너 뛰는 데 필요했습니다 . Ritchie와 Thompson은 나중에이 기능이 모든 .*rc구성 파일 을 숨기고 (기본적으로) 유용한 모든 -a옵션을 추가하여 ls이러한 모든 선행 (숨겨진) 항목을 표시했습니다. 유닉스 역사를 아는 것은 그리 놀라운 일이 아닙니다. 유닉스의 주요한 점은 "영원히"부터 특별했습니다.
arielf

13

다음 파일이 있다고 가정하십시오 /dir1.

foobar  
foo.bar  
fo.ba  
foo1.bar2  
foobar1  
foobar2  

cp -rp /dir1/*.* /dir2/

이 명령은 다음 파일 만 복사합니다.

foo.bar  
fo.ba  
foo1.bar2 

cp -rp /dir1/* /dir2/

이것은 모든 파일을 복사합니다 /dir1

조건은 하위 디렉토리에도 적용됩니다 /dir1.

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