
Tengo tres tipos de archivos en un directorio como.TXT,.csvy archivos sin extensiones.
Ejemplo
test
nest
prod
test.csv
prod.txt
nest.csv
Quiero comprimir los archivos sin extensión y mover ese zip a otro directorio. Por favor ayúdame a solucionar esto
Respuesta1
Usandoalquitránutilidad:
tar -cvf noext.zip --exclude=*.* * && mv noext.zip path/to/dest_dir
-c
- crear un nuevo archivo--exclude=*.*
- excluir archivos segúnPATRÓNmv noext.zip path/to/dest_dir
- mover el archivo creado aldestinodirectorio
Respuesta2
Puede usarlo find
con una condición de inversión en el -name
campo con un patrón global que coincida con nombres que contienen caracteres de punto, como se muestra a continuación.
find . -type f ! -name "*.*" -exec zip filename.zip "{}" +
[ -f filename.zip ] && mv filename.zip /to_whatever_path_needed/
La expresión obtiene todos los archivos.notener un .
carácter en sus nombres y lo pasa al zip en una sola vez para crear el .zip
archivo.
Es posible que tengas que agregar las opciones de profundidad find
como -mindepth 1 -maxdepth 1
si quisieras ubicar los archivos.solodentro de su directorio actual.
Respuesta3
En ksh:
zip /another/directory/files_without_extension.zip !(*.*)
En bash, ejecute shopt -s extglob
luego el comando anterior. En zsh, ejecute setopt ksh_glob
el comando anterior o alternativamente
setopt extended_glob
zip /another/directory/files_without_extension.zip ^*.*