디렉토리의 특정 유형의 파일을 압축하는 방법

디렉토리의 특정 유형의 파일을 압축하는 방법

다음과 같은 디렉토리에 세 종류의 파일이 있습니다.. txt,.csv그리고 확장자가 없는 파일.

test
nest
prod
test.csv
prod.txt
nest.csv

확장자 없이 파일을 압축하여 다른 디렉터리로 이동하고 싶습니다. 이 문제를 해결하도록 도와주세요

답변1

사용아스팔트유용:

tar -cvf noext.zip --exclude=*.* * && mv noext.zip path/to/dest_dir

  • -c- 새 아카이브 만들기

  • --exclude=*.*- 다음을 기준으로 파일 제외무늬

  • mv noext.zip path/to/dest_dir- 생성된 아카이브를 다음으로 이동합니다.목적지목차

답변2

find다음과 같이 점 문자가 포함된 이름과 일치하는 전역 패턴이 있는 필드에 역조건을 사용할 수 있습니다.-name

find . -type f ! -name "*.*" -exec zip filename.zip "{}" + 
[ -f filename.zip ] && mv filename.zip /to_whatever_path_needed/

모든 파일을 가져오는 표현식아니요이름에 문자를 포함 하고 한 번에 zip에 전달하여 아카이브를 .만듭니다 ..zip

파일을 찾으려는 find것처럼 깊이 옵션을 추가해야 할 수도 있습니다.-mindepth 1 -maxdepth 1오직현재 디렉토리에 있습니다.

답변3

ksh에서:

zip /another/directory/files_without_extension.zip !(*.*)

Bash에서 shopt -s extglob위 명령을 실행합니다. zsh에서 setopt ksh_glob위 명령을 실행하거나

setopt extended_glob
zip /another/directory/files_without_extension.zip ^*.*

관련 정보