다음과 같은 디렉토리에 세 종류의 파일이 있습니다.. 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 ^*.*