tar 모두 존재하지 않는 파일 목록

tar 모두 존재하지 않는 파일 목록

다음과 같은 스크립트에서 명령을 실행하고 있습니다.

tar -c -f ar.tar a b c d

여기서 b, c 및 d는 존재하지 않을 수 있으며 디렉토리일 수 있습니다. 내가 생각해낸 해결책은 ls -dto 의 출력을 파이프 grep한 다음 이를 tar명령에 연결하거나 확장된 glob 을 여는 것이었습니다 @(a|b|c|d).

이를 수행하는 더 깨끗한 방법이 있습니까? 저는 Debian Wheezy를 사용하고 있는데 매개변수가 없는 것 같습니다 --include.

답변1

당신은 시도 할 수 있습니다

 tar cf ar.tar $(ls a b c d )

어디

  • c만드는데 사용됨
  • f ar.tartar 파일 지정

  • $(ls a b c d)표준 입력에 실제로 존재하는 파일을 나열합니다(다른 파일에 대해서는 오류를 표시합니다).

답변2

tar 아카이브에 있는 파일의 전체 경로를 얻을 수 있으면 다음을 수행할 수 있습니다.

tar -c -f ar.tar $(readlink -e a b c d)

-ereadlink 옵션은 기존 파일 이름을 정규화하고 다른 파일 이름은 자동으로 무시합니다.

답변3

사용

find path/to/dir -name "*.ext1" -o -name "*.ext2"

설명하다

  1. 첫 번째 매개변수는 검색할 디렉터리입니다.
  2. 재귀는 기본적으로 수행됩니다 find.
  3. ​따라서 -o-or 의 내용은 이 와일드카드 또는 이것을 검색하는 것을 의미합니다. 모드가 하나만 있는 경우에는 필요하지 않습니다 -o.
  4. 와일드카드 패턴 주위에는 따옴표가 필요합니다.

관련 정보