bash 명령에서 점의 의미는 무엇이며 별표와 어떻게 다른가요?


11

나는 bash에서 점의 중요성과 그것이 별표와 어떻게 다른지 이해하려고합니다. 누군가가 자세히 설명해 주시겠습니까? 예를 들어, 차이 무엇 cp -ar /foo/. /foo2/cp -pr /foo/* /foo2/

답변:


12

점 ( .)은 .디렉토리 자체와 동일한 디렉토리 내부의 디렉토리 일뿐 ls -la /foo입니다 (표시합니다). 따라서 foo/.다른 곳에서 foo복사하면 foo자체적으로 복사하지 않고 아래의 모든 트리를 효과적으로 복사 합니다 ( foo2/.와 동일한 트리에 복사 함 foo2).

/foo/*비 숨김 파일 및 디렉토리의 목록에 쉘에 의해 확장 /foo이 아래에 같은 디렉토리 구조를 복사 할 수 있도록, /foo/foo2dotfiles / dotdirs를 제외하고,뿐만 아니라. 효과적으로, cp많은 주장을 받아 들일 것입니다. 목록이 너무 크면 실행이 cp실패 할 수도 있습니다 .


미안하지만 혼란스러워지고 있습니다. 본질적으로 별표는 명령을 재귀 적으로 만듭니다? 다른 말로 cp -r /foo/*하면 cp /foo/* ?
Mike B

5
@MikeB, 아니오, 쉘은 / foo 디렉토리에있는 파일 목록 만 확장합니다. cp의 동작을 변경하지 않습니다. set -x또는 echo cp -pr /foo/* /foo2을 사용 하여 진행중인 작업을 확인하십시오. 와일드 카드를 확장하는 쉘임을 인식하는 것이 중요합니다. cp별이 보이지 않습니다.
Stéphane Chazelas

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