많은 하위 디렉토리와 파일이있는 두 개의 상위 디렉토리 A와 B가 있습니다. parentdir B에 앉아서이 두 명령을 입력하십시오. 그들 사이의 차이점은 무엇입니까? 당신이 무모했다 않는cp 사이의 차이점
cp -r /path/to/A/* *
및
cp -r /path/to/A/* .
많은 하위 디렉토리와 파일이있는 두 개의 상위 디렉토리 A와 B가 있습니다. parentdir B에 앉아서이 두 명령을 입력하십시오. 그들 사이의 차이점은 무엇입니까? 당신이 무모했다 않는cp 사이의 차이점
cp -r /path/to/A/* *
및
cp -r /path/to/A/* .
당신은 첫 번째 명령을 입력하지 않을 것 : 자신의 팽창에
*
을 현재의 모든 비 숨겨진 파일/디렉토리의 이름으로 예배 규칙서. 따라서 /path/to/A
에는 두 개의 하위 디렉터리 (spoon
및 fork
)가 포함되어 있으며 현재 디렉터리에는 세 개의 하위 디렉터리 (foo
, bar
및 baz
)가 포함되어 있다고 가정 해 봅니다. 즉
cp -r /path/to/A/fork /path/to/A/spoon bar baz foo
이 반복적으로 foo
에 /path/to/A/fork
, /path/to/A/spoon
, bar
및 baz
(알파벳 순서의 마지막에 와서 일 현재 디렉토리에서 항목을) 복사 :이 같은 쉘이 첫 번째 명령을 해석하는 것을 의미한다. 따라서 foo
아래에 4 개의 새 디렉토리가 있습니다. foo/fork
, foo/spoon
, foo/bar
및 foo/baz
입니다.
두 번째 명령은 /path/to/A/spoon
과 /path/to/A/fork
을 재귀 적으로 현재 디렉터리에 복사하는 것을 의미합니다. 그러면 현재 디렉토리에 두 개의 새 서브 디렉토리 (fork
및 spoon
)가 작성됩니다.
'cp -r/path/to/A/* *'디렉토리가'A' 디렉토리에 하나 이상의 파일이나 디렉토리가있는 경우조차 정확하지 않습니다. – vidit
@vidit ... 결국'*'에 의해 확장 된 마지막 항목이 디렉토리 일 경우에는 작동 할 것이지만 (의도하지 않은 끔찍한 일들을 할지라도) ... – twalberg