나는 같은 스크립트에서 명령을 실행하고있다
tar -c -f ar.tar a b c d
여기서 b, c 및 d는 존재하지 않을 수 있으며 디렉토리 일 수 있습니다. 솔루션은 내가했습니다 것을의 출력 배관된다 마련 ls -d
에를 grep
그런 다음에 그것을 배분하고 tar
명령 또는 확장 된 globs와 켜기 @(a|b|c|d)
.
이 작업을 수행하는 더 깔끔한 방법이 있습니까? --include
매개 변수 가없는 Debian Wheezy에 있습니다 .
답변
당신은 시도 할 수 있습니다
tar cf ar.tar $(ls a b c d )
어디
c
창조를 위해-
f ar.tar
tar 파일을 지정하십시오 -
$(ls a b c d)
어떤 파일이 실제로 존재하는지 stdin에 나열하고 다른 파일에는 오류가 발생합니다.
답변
tar 아카이브에 파일의 전체 경로가 있으면 괜찮습니다.
tar -c -f ar.tar $(readlink -e a b c d)
-e
readlink를하는 옵션은 기존 파일 이름을 정규화하고 자동으로 어떤 다른 사람을 무시합니다.
답변
사용하다
find path/to/dir -name "*.ext1" -o -name "*.ext2"
설명
- 첫 번째 매개 변수는 검색하려는 디렉토리입니다.
- 기본적으로
find
재귀가 수행됩니다. - 의
-o
약자입니다-or
. 따라서 위는이 와일드 카드 또는이 와일드 카드를 검색한다는 의미입니다. 패턴이 하나만 있으면 필요 없습니다-o
. - 와일드 카드 패턴 주위에 따옴표가 필요합니다.