ディレクトリ内の特定の種類のファイルを圧縮する方法

ディレクトリ内の特定の種類のファイルを圧縮する方法

次のディレクトリには3種類のファイルがあります。。 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 ^*.*

関連情報