当前位置: 首页 > 面试题库 >

查找名称匹配模式的目录并将其移动

司寇凯
2023-03-14
问题内容

我有一堆目录001/ 002/ 003/,其中有些目录的名称中包含字母。我只想获取所有具有数字名称的目录,然后将它们移至另一个目录。

我尝试这样:

file */ | grep ^[0-9]*/ | xargs -I{} mv {} newdir

匹配的部分有效,但最终将所有内容移至newdir


问题答案:

我不确定我是否正确理解,但至少可以提供一些帮助。

使用find和xargs的组合来操作文件列表。

find -maxdepth 1 -regex './[0-9]*' -print0 | xargs -0 -I'{}' mv "{}" "newdir/{}"

使用-print0-0引用替换符号{}可使您的脚本更加健壮。它可以处理存在不可打印字符的大多数情况。这基本上表示它使用\0char分隔符而不是来传递行\n



 类似资料:
  • 问题内容: 我想重命名与名称相匹配的basedir下的所有目录。例如: 在中,我有: 我想重命名所有匹配的目录,但是我想保留前缀部分。 使用,我可以轻松地列出所有目录,如下所示: 但是,如何使用(或与其他应用程序结合)以保留前缀? 提前谢谢了! 问题答案: 在执行命令之前将目录更改为父目录,因此此处对于每个父目录都是本地的。

  • 问题内容: 我使用此命令查找具有给定模式的文件,然后将其重命名为其他文件 运行此命令时,我看到一些类似的输出 但是最后,当我运行时,我看到了旧文件名。 问题答案: 您正在回显’mv’命令,而不是实际执行它。改成:

  • 下面的代码(代码A)产生正确的输出(匹配) 但是,下面的代码(代码B)产生错误的输出(不匹配)

  • 问题内容: 目前,我正在更新我的x.509证书库以支持ECC。实现的大多数构建器都使用publicKey并从密钥派生算法等。在RSA中,这很简单,您可以检查密钥的算法,然后可以验证位长。但是,对于ECC,密钥是基于曲线的,曲线名称(当然)需要在证书中指定(作为OID)。 我现在正在研究的问题是找到一种方法来从java.security.interfaces.ECPublicKey或org.boun

  • 问题内容: 我正在使用grep生成我需要移动的文件列表: 如何将该列表传递给mv命令并将文件移动到其他位置? 问题答案: -Z表示在文件名后输出零(\ 0)(因此,空格不用作分隔符)。 表示将\ 0解释为定界符。 然后 表示用文件名替换,因此您得到。

  • 问题内容: 我正在尝试使用Java通过ssl连接到我的一台服务器。我尝试了很多选择,这是我的最佳尝试: 我使用以下推荐脚本生成了jssecacerts:http : //blogs.oracle.com/andreas/resource/InstallCert.java, 其中包含以下命令:java InstallCert ssl.someUrl.de changeit 之后,我再次执行了命令: