Tar 존재하지 않는 파일 목록 것을의 출력 배관된다 마련 ls

나는 같은 스크립트에서 명령을 실행하고있다

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)

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


답변

사용하다

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

설명

  1. 첫 번째 매개 변수는 검색하려는 디렉토리입니다.
  2. 기본적으로 find재귀가 수행됩니다.
  3. -o약자입니다 -or. 따라서 위는이 와일드 카드 또는이 와일드 카드를 검색한다는 의미입니다. 패턴이 하나만 있으면 필요 없습니다 -o.
  4. 와일드 카드 패턴 주위에 따옴표가 필요합니다.

답변