在bash命令行中,我必须找到名称与我的系统中某个特定模式相匹配的所有zip文件,然后将它们解压缩到我的目录中。xargs oneliner解压缩文件
我想组织子文件夹中的解压缩文件,我想选择我的子文件夹名称与基于原始zip文件名称(不使用完整路径)的自定义命名约定。
我知道为周期的工作,无论如何,因为我现在正在学习xargs,我想知道我是否可以在xargs oneliner中做同样的事情;类似于:
locate -r "<zipped files regex>" | xargs -i -t "foldername=$(echo {} | sed 's/.*\///'); mkdir -p $folderName; unzip {} -d $folderName"
我得到这个消息:
foldername={}; mkdir -p ; unzip {} -d
xargs: foldername={}; mkdir -p ; unzip {} -d : No such file or directory
你能帮我做工作?
谢谢!
当前命令的问题究竟是什么?另外,您是否可以提供一个来自{}>的
Xargs将所有内容传递给一个zip命令,zip一次只能处理一个zip文件,因此您应该使用for-loop或'find ... -exec'。 –
@SamiLaine好点,但'xargs'有'-n'('--max-args')选项。尽管如此,使用带'-exec'的'find'更直接。 –