한 디렉터리에서 여러 파일을 찾을 수 없습니다. [닫기]

한 디렉터리에서 여러 파일을 찾을 수 없습니다. [닫기]

데이터베이스에 있는 테이블의 모든 ddl을 가져온 다음 데이터베이스에 있는 모든 테이블을 단일 파일로 병합하는 스크립트를 작성했습니다.

다음과 같은 데이터베이스 mydatabase와 테이블이 있다고 가정해 보겠습니다.mytable

데이터베이스의 모든 테이블 ddl을 임시 디렉터리에 덤프했습니다. 임시 디렉터리의 ddl은 아래와 같습니다 /home/rahul/temp/mydatabase.mytable.ddl. 데이터베이스 아래의 모든 테이블을 덤프한 후에는 모든 테이블 ddl을 아래와 같이 하나의 파일로 병합하려고 합니다.

cat /home/rahul/temp/mydatabase*ddl >> /home/rahul/final/mydatabase.create

다음과 같은 오류가 발생합니다.

cat: /home/rahul/temp/mydatabase*ddl: No such file or directory

어떻게 해결할 수 있나요?

답변1

어쩌면 쉘 와일드카드를 꺼두었나요 set -f?

$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

$ set -f
$ ls mydatabase*ddl
ls: cannot access 'mydatabase*ddl': No such file or directory

$ set +f
$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

답변2

cat와일드카드를 처리할 수 없는 경우 *빠른 방법은 다음과 같습니다.

for file in /home/rahul/temp/mydatabase*ddl; do cat $file >> /home/rahul/final/mydatabase.create; done

입력 및 출력 파일에 셸 변수를 사용하고 더 복잡한 셸 스크립트를 만들 수 있다는 것을 알고 있지만 이 문제를 처리하는 데는 이것만으로도 충분합니다.

관련 정보