将文件从几个文件夹移动到子文件夹

时间:2019-06-21 13:17:43

标签: macos shell

我有许多包含文件的文件夹,在每个文件夹中都有一个名为String reportID = "06" String reportTypeValue = "PAS ITD/EOD EX1 Allocation Statement" driver.findElement(By.xpath("//table/descendant-or-self::tr[td[1][substring(text(), string-length(text()) - string-length('" + reportID + "') + 1)]][td[3][text()='" + reportTypeValue + "']]/td[7]/a") 的子文件夹。我要做的是将所有文件移到每个wvfm文件夹中。

我尝试过下面的一行,但是没有用

const express = require('express');
const app = express();
const jsdom = require('jsdom');
const { JSDOM } = jsdom;

app.listen(3000, () => {

    console.log("connesso all'ip: http://localhost:3000");

});

app.get('/', (req, res) => {
    // res.send(req.protocol + '://' + req.hostname);
    const url = 'URL OF THE PAGE';

    JSDOM.fromURL(url).then(dom => {
      const element = dom.window.document.getElementsByClassName('CLASS I WANT TO GET');

      console.log(element.length);

    });
  });

但是那不太正确

2 个答案:

答案 0 :(得分:1)

使用for循环(for i in */; do)列出文件,然后移至文件夹以列出所有文件并将其保存到变量(F=$(ls))中。

然后将所有文件移动到不包含文件夹(mv ${F/wvfm/} wvfm)的位置,如下所示:

#!/bin/bash
subdirectory="wvfm"
for i in */; do
cd $i
F=$(ls)
mv ${F/$subdirectory/} $subdirectory
cd ../
done

答案 1 :(得分:0)

find * -maxdepth 0 -type d | xargs -n 1 -I {} mv {}/* {}/wvfm

应该可以解决问题;又快又脏。不是MacOS用户,但可以使用bash。

说明:
find * -maxdepth 0 -type d查找深度为0的所有目录(即:不要下降目录),
使用选项-n 1到xargs的管道,一次操作一个值,-I replace-str,字符串替换(请参见man xargs)。
操作命令:对于每个目录匹配,mv {}/* {}/wvfm都将替换为mv dirA/* dirA/wvfm
您将收到一个“错误” mv: cannot move /wvfm' to a subdirectory of itself, 'wvfm/wvfm',但您可以忽略/利用它(快速又肮脏)。

您可以使用以下方法覆盖所有基地:

for entry in $(find * -maxdepth 0 -type d); do
   (cd $entry; [[ -d wvfm ]] && \
    find * -maxdepth 0 ! -name wvfm -exec mv {} wvfm \;
   )
done

find * -maxdepth 0 -type d再次仅查找顶级目录,
在子外壳中,如果有目录wvfm,请转到输入目录,
查找除wvfm目录和-exec命令mv以外的所有内容
退出子Shell会使您回到起始(根)目录,准备进行下一次输入。