我有一套文件:
lium3@l128-37:/DATA/fr94/01 $ ls -l
total 7784
-rw-r--r-- 1 lium3 mcm1 395575 May 2 1996 fr940104.0z
-rw-r--r-- 1 lium3 mcm1 113815 May 2 1996 fr940104.1z
-rw-r--r-- 1 lium3 mcm1 186333 May 2 1996 fr940104.2z
-rw-r--r-- 1 lium3 mcm1 164854 May 2 1996 fr940105.0z
-rw-r--r-- 1 lium3 mcm1 39677 May 2 1996 fr940105.1z
-rw-r--r-- 1 lium3 mcm1 284948 May 2 1996 fr940105.2z我希望一次把它们全部解压缩(这只是一个样本!)
我试过这个
find -name '*.0z' -exec sh -c 'uncompress "${1%.*}" "$1"' _ {} \;刚刚得到:
gzip: ./fr940125.gz: No such file or directory
gzip: ./fr940125.0z: unknown suffix -- ignored
gzip: ./fr940106.gz: No such file or directory
gzip: ./fr940106.0z: unknown suffix -- ignored我有许多目录中有这样的文件。
如果我可以得到一个脚本来执行一个目录,那么是否可以通过目录递归地执行它呢?
发布于 2018-12-10 23:16:47
看起来你有两个问题:
1:您的${1%.*}结果是文件的基本名称(例如fr940125),因此解压缩尝试添加默认后缀.gz,对于它尝试的合并的新文件名,不存在任何文件。
2:您提供了第二个参数来解压缩,这是存档的正确文件名,但解压缩不知道如何处理文件的结尾。尝试将参数'-S .0z‘作为参数。
下面的命令可能是正确的,可以递归提取当前目录和所有子目录中的所有.0z文件:
find -name '*.0z' -exec sh -c 'uncompress -S .0z "$1"' _ {} \;https://unix.stackexchange.com/questions/448462
复制相似问题