답변:
에 있기 때문에 그 이유는 bash
, *
점으로 시작하는 파일에 포함되지 않는 ( .
).
당신은 실행할 수 있습니다
cp A/.* B
그것은 복사하지 않았 음을 경고합니다 .
또는 ..
하위 디렉토리를하거나,하지만이 괜찮습니다.
또는 도트 파일과 일반 파일을 함께 복사하려면 다음을 실행하십시오.
cp A/.* A/* B
당신은 또한 실행할 수 있습니다
shopt -s dotglob
cp A/* B
작동 bash
하지만 작동 하지 않습니다 sh
.
하위 디렉토리도 복사되지 않는다면 이것이 가장 쉬운 방법입니다.
cp -R A/ B
팁 : 와일드 카드가 예상대로 작동하지 않는 경우 에코로 실행 해보십시오. 예 :
$ echo A/*
A/file1 A/file2
$ echo A/.*
A/. A/.. A/.hidden1 A/.hidden2
$ echo A/.* A/*
A/. A/.. A/.hidden1 A/.hidden2 A/file1 A/file2
$ shopt -s dotglob
$ echo A/*
A/file1 A/file2 A/.hidden1 A/.hidden2
-R
는 잘 작동합니다. 잘못되었다고 생각되면 그 이유를 설명하십시오.
bash 인 경우 dotglob
복사하기 전에 설정할 수 있습니다
shopt -s dotglob
cp A/* /destination
또는 프로그래밍 언어
$ ruby -rfileutils -e 'Dir[".*"].each {|x| FileUtils.copy(x,"/destination") if File.file?x}'
도트 글로브를 설정하지 않으려면
cp A/.* /destination 2>/dev/null
당신이 찾고있는 것은 더 많은 라인을 따라 있습니다 :
cp A/.??* B/
이것은 모든 도트 파일과 일치하지만 "."와는 일치하지 않습니다. 또는 "..". 위의 솔루션 중 대부분은 재귀 적으로 작업하지 않는 한 좋습니다. 그러나 다음과 같은 작업을 수행하자마자 :
cp -R A/.??* B/
".."를 생략하지 않으면 도트 파일이 아닌 파일을 포함하여 상위 디렉토리의 모든 항목이 다운됩니다.
.a
또는 .x
. 내가 찾은 가장 짧은 globbing 패턴 은 .
and를 제외한 모든 도트 파일과 일치합니다 . ..
.[^.]*
그건 아니에요 cp
의 고장 배쉬 펼쳐지는 그것의 bash는, *
모두에서 숨겨지지 않은 (예 : 비 시작 .
) 파일.
강타는 확장됩니다 .*
(따라서 A/.*
로 시작하는 모든 파일과 함께, 귀하의 경우)을 .
하지만, 불행하게도 그것은 또한 포함 .
하고 ..
당신이 건너 아마를 원할 것입니다 (현재 부모 디렉토리). (zsh와 같은 다른 쉘에는 쉘이 포함되지 않으며 IIRC도 옵션을 설정 한 후 bash입니다).
쉬운 해결책은 다음 .
과 같이 (매우) 해킹 된 방식으로 ..
일치하는 파일 을 제거 하고 제거 .*
하는 것입니다.
cp $( for F in A/.*; do echo $F | grep -v "^\.*$"; done ) B
또는 이것 (아마도 더 깨끗합니다 : find
복사 할 파일을 찾는 데 사용 합니다) :
cp $( find A -maxdepth 1 -mindepth 1 -name ".*" ) B
그러나 더 깨끗한 솔루션을 찾을 수 있습니다.
모두 점으로 시작하면 A/.*
다음을 사용하십시오 .
[holt@Michaela test]$ cp A/* B
cp: cannot stat `A/*': No such file or directory
[holt@Michaela test]$ cp A/.* B
cp: omitting directory `A/.'
cp: omitting directory `A/..'
[holt@Michaela test]$ ls -al B
total 8
drwxrwxr-x. 2 holt holt 4096 2011-03-31 16:57 .
drwxrwxr-x. 4 holt holt 4096 2011-03-31 16:57 ..
-rw-rw-r--. 1 holt holt 0 2011-03-31 16:57 .a
-rw-rw-r--. 1 holt holt 0 2011-03-31 16:57 .b
-rw-rw-r--. 1 holt holt 0 2011-03-31 16:57 .c
이것이 도움이되기를 바랍니다!
-r
. 이 없으면-r
디렉토리를 건너 뜁니다.