Pet*_*sen 4 linux terminal zip
有没有办法解压缩包含 zipfiles 的文件夹中的所有 gz 文件。当 zip 文件位于子目录中时。查询
find -type f -name "*.gz"
Run Code Online (Sandbox Code Playgroud)
给出如下结果:
./datasets/auto/auto.csv.gz
./datasets/prnn_synth/prnn_synth.csv.gz
./datasets/sleep/sleep.csv.gz
./datasets/mfeat-zernike/mfeat-zernike.csv.gz
./datasets/sonar/sonar.csv.gz
./datasets/wine-quality-white/wine-quality-white.csv.gz
./datasets/ring/ring.csv.gz
./datasets/diabetes/diabetes.csv.g
Run Code Online (Sandbox Code Playgroud)
有一个递归选项(-r)。
gzip -dr ./datasets
Run Code Online (Sandbox Code Playgroud)
所有存档都将解压到各自的目录中。
示例:gzip -dr ./a
a/b/c/test1.gz
a/b/d/test2.gz
a/e/test3.gz
Run Code Online (Sandbox Code Playgroud)
执行后:
a/b/c/test1
a/b/d/test2
a/e/test3
Run Code Online (Sandbox Code Playgroud)
如果您想对其中的每一个都启动“gzip -d”:
cd theparentdir && gzip -d $(find ./ -type f -name '*.gz')
Run Code Online (Sandbox Code Playgroud)
然后,将它们压缩回来:
cd theparentdir && gzip $(find ./ -type f -name '*.csv')
Run Code Online (Sandbox Code Playgroud)
然而,这在许多情况下会窒息
一个解决方案是,如果你有 GNU 找到,做:
找到... -print0 | xarsg -0 gzip -d # for the gunzip one,但仍然被包含“换行符”的文件阻塞
另一个(可以说更好?)解决方案,如果您有 GNU 可供您使用:
cd theparentdir && find ./ -type f -name '*.gz' -exec gzip -d '{}' '+'
Run Code Online (Sandbox Code Playgroud)
并重新压缩该父目录和所有子目录中的所有 csv:
cd theparentdir && find ./ -type f -name '*.csv' -exec gzip '{}' '+'
Run Code Online (Sandbox Code Playgroud)
"+" 告诉 GNU find 尝试在每次 gzip 调用中放置尽可能多的找到的文件(而不是每个文件执行 1 个 gzip incocation,非常非常资源密集且非常低效和缓慢),类似于 xargs,但有一些好处(仅 1 个命令,无需管道)
归档时间: |
|
查看次数: |
9143 次 |
最近记录: |