gpt4 book ai didi

linux - 将所有内容移动到新的子文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:42 25 4
gpt4 key购买 nike

我有一个用于 linux 的 shell 脚本,它位于基础文件夹 testing 中,并将进入 original 目录,将所有内容复制到 input 文件夹,然后在 input 的每个子目录中执行三个任务:

  1. 创建一个名为tip的新文件夹>
  2. 将所有文件放入tip
  3. 创建第二个名为 sorted 的新文件夹

当我在命令行上测试它时,我遇到的唯一问题是因为我在将所有内容移动到其中之前创建了 tip 文件夹,它会返回一个错误,它无法移动本身的文件夹 - 这很好,无论如何。但是,当我在 NiFi 中运行它时,它给了我一个不同的错误(cannot create directory tip: file exists)并且行为不同。

脚本

#!/bin/bash

# copy to input while maintaining file structure
cd /data/testing/original
cp -r * /data/testing/input
cd /data/testing/input

# for each subfolder in input, create tip & sorted, and move all of the original stuff into tip
for dir in /data/testing/input/*
do
test -d "$dir" || continue
cd "$dir" && mkdir tip && mv * tip/
mkdir sorted
done

/data/testing/input/subfolder/ 中每个子文件夹的预期输出

sorted -> empty
tip -> media folder, file1, file2

实际输出

sorted -> empty
tip -> media folder, file1, file2
media folder
file1
file2

我做错了什么?

最佳答案

shopt -s extglob 

# trailing slash forces the results to be dirs
# ..............................v
for dir in /data/testing/input/*/; do
(
cd "$dir" && mkdir tip sorted && mv -t tip/ !(tip|sorted)
# ..........................................^^^^^^^^^^^^^
# anything *not* matching "tip" or "sorted"
)
# run above in a subshell so you don't have to cd back to parent dir
done

关于linux - 将所有内容移动到新的子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56133408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com