如何找到具有特定路径结构的要压缩的目录



我在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 "{}" ;

相关内容

  • 没有找到相关文章

最新更新