当前位置: 首页 > 知识库问答 >
问题:

将一个级别的所有文件向上移动一个级别

翁俊良
2023-03-14

我在linux服务器上的一个备份中遇到了一个问题,它以某种方式将文件的所有文件夹向下移动了一个级别,放入了一个同名的新文件夹。我想将所有文件返回到其原始位置。许多文件的名称中有空格,使事情复杂化。

原始目录结构:

backup/folder 1/file 1
backup/folder 1/file 2
backup/folder 1/subfolder/file A
backup/folder 2/file 1
...

目录结构不正确:

backup/folder 1/folder 1/file 1
backup/folder 1/folder 1/file 2
backup/folder 1/folder 1/subfolder/file A
backup/folder 2/folder 2/file 1
...

请注意,我不希望子文件夹中的文件移动到文件夹1中,但我确实希望子文件夹本身向上移动一级。

我尝试了一些类似的命令,基于这里一些相关的线程,但没有成功,而是尝试将文件移动到当前目录。我做错了什么?

查找-mindepth 3-maxdepth 3-exec sh-c“mv-v{}..”;

共有1个答案

查锦程
2023-03-14

您可以调整以下行:

for file in *
do
    if [ -d "$file" ]; then
    cd "$file"
    if [ -d "$file" ]; then
        cd "$file"
        mv * ..
        cd ..
        #rm -r "$file"
    fi
    cd ..
    fi
done

这个想法只是在顶层检测目录和子目录是否具有相同的名称,然后移动父目录中的所有文件。

 类似资料:
  • 给定输入的XML数据: 因此,我期望通过以下条件输出数据:“for-eachTime_Off_Type_GroupTime_Off_Entry_IDRequest_or_CorrectionTime_Off_Type_Group” 输出示例:

  • 问题内容: 如何移动除一个以外的所有文件?我正在寻找类似的东西: 我将旧资料移到新资料夹的位置,除了。!符号表示否定。有一些工作工具吗? 问题答案: 将以下内容放入您的.bashrc 它扩展了正则表达式。然后,您可以移动除一个以外的所有文件 与其他命令有关的异常 请注意,在复制目录中,不能以线程中注意到的名称使用正向闪存,为什么除破坏条件外,extglob为何? 所以是否定之前错在这里,我不会,因

  • 我正在使用bootstrap和jQuery创建一个登陆页面。一个缺点是,我只能用jquery更改html,因为html是由cms后端代码硬编码的,更改后会重置html。因此操作代码的唯一方法是使用jQuery。长话短说,我有一个包含输入和标签的表单。我正在尝试将输入和标签标签的一列变成两列。到目前为止,我已经创建了一个具有自己的类的div标记,这将是第二列。使用jquery wrapAll函数,在

  • 问题内容: 我正在尝试编写一个XSLT,根据标题级别将HTML文件组织到不同的部分级别。这是我的输入: 目前,我正在使用一个非常简单的结构,因此该模式在一段时间内将保持不变。我需要这样的输出… 但是,我无法使其完全满足我的需要。 我正在使用Saxon 9在Oxygen中运行xslt for dev。我将在生产中使用cmd / bat文件。还是Saxon9。如果可能的话,我想处理多达4个嵌套部分。

  • 我在pom中有获取依赖项的代码。像这样的xml 这个工件来自一个自定义的远程maven存储库。我们试图将这个group pId“第三方”下的所有工件移动到JFrog工件工厂。我该如何实现呢?

  • 我必须将ant项目转换为gradle项目。在这里,当我运行gradle构建时,它创建了war文件,当它部署在服务器上时,分解的war文件夹有两个文件夹META-INF和WEB-INF,我的要求是1。将web.xml从图像中看到的config文件夹复制到WEB-INF文件夹,并将图像中看到的jsp文件夹复制到分解文件夹