gpt4 book ai didi

python - 根据文件名中的特定模式 move 文件,同时保留文件夹结构

转载 作者:行者123 更新时间:2023-12-04 08:35:12 24 4
gpt4 key购买 nike

我需要将文件名中包含字符串“Unknown Quality”的所有文件及其外部 2 个文件夹 move 到名为“Unknown”的文件夹中,该文件夹与基本文件夹位于同一目录中。我想在基本文件夹中添加它,文件有 3 个文件夹深,因此在 move 匹配的文件时,它应该将 $folder1 留在 base_folder 本身中。

Unknown_folder

base_folder
$folder1
$folder2
$folder3
$filename-Unknown Quality.mpk/mp4/avi

################### Expected result ###################

Unknown_folder
$folder2
$folder3
$filename-Unknown Quality.mpk/mp4/avi

base_folder
$folder1
经过一番搜索,我遇到了这个基本的 find 命令,虽然它不适合我,因为它只是 move 与模式匹配的文件和 ingores 目录结构。正如我在 move 匹配文件时所解释的那样,我还需要相对于 move 的匹配文件的外部 2 目录结构
find . -name "*Unknown Quality*" -exec mv "{}" Unknown \;   
希望有人可以帮助我。我不太确定什么是最好的方法,但是 bash , perl , python 所有这些都应该很容易实现

最佳答案

请您尝试以下操作:

#!/bin/bash

find root -name "*Unknown Quality*" -type f -print0 | while IFS= read -r -d "" f; do
f2=${f%/*} # removes the rightmost "/" and following filename
f2=${f2%/*} # removes the second rightmost "/" and following dirname
if [[ -d $f2 ]]; then
# consider the case the folder is already removed
mv -- "$f2" "Unknown_folder"
fi
done
请注意,上面的代码没有考虑目录“Unknown_folder”中相同目录名冲突的情况。

关于python - 根据文件名中的特定模式 move 文件,同时保留文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64833629/

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