【问题标题】:How to move files and directories excluding one specific directory to this directory如何将不包括一个特定目录的文件和目录移动到该目录
【发布时间】:2015-02-23 15:30:54
【问题描述】:

目录内

~/domains/annejulie.blue-world.pl/git

我想获取除 annejulie.blue-world.pl.git 目录之外的所有文件和目录并将它们移动到该目录(annejulie.blue-world.pl.git强>)

如何在终端中使用 find 和 grep 命令执行此操作?有可能吗?

【问题讨论】:

  • 这个问题似乎离题了,因为它与编程无关。也许Super User 会是一个更好的地方来询问有关 Linux 命令的问题。
  • mv * annejulie.blue-world.pl.git
  • 不,因为它会将目录annejulie.blue-world.pl.git 移动到它自己
  • 您使用哪个操作系统/发行版和版本?

标签: bash terminal grep


【解决方案1】:

首先在终端中执行以下命令。这扩展了正则表达式。

shopt -s extglob

现在可以执行下面的 mv 命令了

mv !(<file/dir not to be moved>) <Path to dest>

例如,如果您在 ~/Test 并且需要将除 ~/Test/Dest 之外的所有内容移动到 ~/Test/Dest,则可以如下执行它,假设您在 ~/Test

mv !(Dest) ~/Test/Dest

【讨论】:

    【解决方案2】:

    使用find,假设您的find 支持-mindepth 和-maxdepth。

    find . -mindepth 1 -maxdepth 1 \! -name annejulie.blue-world.pl.git -exec echo mv {} annejulie.blue-word.pl.git \;
    

    这不会执行移动,而是在终端上打印它将执行的操作。如果您对结果感到满意,请删除 -exec 词后的 echo。

    如果你有一个支持-t 选项的mv,你可以使用这个:

    find . -mindepth 1 -maxdepth 1 \! -name annejulie.blue-world.pl.git -exec echo mv -t annejulie.blue-word.pl.git {} +
    

    如果您的find 不支持-mindepth 和-maxdepth,这个POSIX 兼容应该可以:

    find \( \! -name '.' -type d -prune -o \! -type d \) \! -name annejulie.blue-world.pl.git -exec echo mv {} annejulie.blue-word.pl.git \;
    

    它有效,但它真的很丑。


    当然,最好的选择是使用

    mv -- * annejulie.blue-world.pl.git
    

    让mv 抱怨它不能移动到它自己的子目录。

    【讨论】:

      【解决方案3】:

      你可以使用find:

      cd ~/domains/annejulie.blue-world.pl/git
      find . -and -not -path './annejulie.blue-world.pl.git*' -exec mv {} ./annejulie.blue-world.pl.git \;
      

      【讨论】:

      • &gt; 是什么意思?我点击了你的命令,我得到了那个括号。我现在该怎么办?
      • 其实是你命令的结果。有一个光标,它希望输入某事,但我不知道是什么。我输入了find . -and -not -path './annejulie.blue-world.pl.git*' mv {} ./annejulie.blue-world.pl.git `
      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 2013-06-27
      • 2023-04-07
      • 2019-09-26
      • 1970-01-01
      • 2017-07-20
      • 2020-11-27
      • 1970-01-01
      相关资源
      最近更新 更多