我在bash中。
我有以下目录。
/mydir/moredirs/archivethis1
/mydir/moredirs/archivethis2
/mydir/moredirs/subdirA
/mydir/moredirs/subdirB
I amablecd到/mydir/moredirs
然后zip ~/archivethis1.zip archivethis1/*.*
我想这样使用find:
cd /mydir/moredirs
find * -type d -name "archive*" -exec zip ~/{}.zip {}/*.* ;
我收到以下错误:
zip警告:名称不匹配:zip错误:Nothing to do!
我是否可以使用find来查找所有名为archive的目录,然后使用与对单个目录运行zip命令相同的路径结构对它们进行压缩?注意,这就是为什么我使用find * vs find .
,为什么我cd到父目录,使CWD。
我更喜欢使用/*.* vs -r
标志,因为它不包括zip结构中的空目录。
我必须更正我的建议
find: warning:您指定了全局选项-maxdepth参数类型,但全局选项不是位置选项,即:-maxdepth影响在它之前和之后指定的测试。请在其他参数之前指定全局选项。
find . -maxdepth 1 -type d -name "archive*" -exec zip -r ~/"{}".zip "{}" ;