tar가있는 Ubuntu의 와일드 카드 *가 일부 파일을 복원하지 못하는 것이 그럴듯합니까? 와일드 카드를 사용하여 일부 파일을

이 명령 행 순서에서 * .sh 와일드 카드를 사용하여 일부 파일을 복원합니다. 세 번 맞았습니다. 더 있어야한다는 것을 알고 전체 이름을 입력했습니다. 예를 들면 다음과 같습니다. goFindRanges.sh. 추가 파일을 복원 할 수있었습니다. 와일드 카드가 어떻게 엉망이 되었습니까?

내 .tgz 아카이브는 하드 디스크에 있습니다. 광학 매체가 아닙니다. 우분투 10.10에서 bash를 사용합니다.

b@maui:~$ tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/*.sh
./javawork/Trader1/goReloadOp.sh
./javawork/Trader1/goReloadAudit.sh
./javawork/Trader1/goTrade.sh
b@maui:~$ tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/goFindRanges.sh
./javawork/Trader1/goFindRanges.sh


답변

와일드 카드는 아카이브 내부에있는 것이 아니라 디스크에있는 것을 확장합니다 (tgz).


답변

당신이 할 때 :

tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/*.sh

*.sh쉘 확장 (존재 ./javawork/Trader1/*.sh 존재를 가정). 따라서 tar는 다음과 같이 쉘에 의해 실행됩니다.

tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/goReloadOp.sh ./javawork/Trader1/goReloadAudit.sh ./javawork/Trader1/goTrade.sh

와일드 카드를 tar에 전달하려면 “그 파일 만 추출하십시오”라고 말하려면 작은 따옴표로 묶고 --wildcards옵션을 추가해야합니다 .

tar xvpfz backup2011Sep06T0000.tgz --wildcards './javawork/Trader1/*.sh'

답변