根据扩展名将文件从旧文件夹移动到新文件夹,然后根据以前的文件夹名称在新文件夹中为文件添加前缀

根据扩展名将文件从旧文件夹移动到新文件夹,然后根据以前的文件夹名称在新文件夹中为文件添加前缀

我在文件夹 A 中有两个文件,我想将其中一个文件(如果是文本文件)移动到新文件夹。文件夹结构和内容如下

文件夹 A 里面有两个文件,分别是 book.txt 和 book.csv。

我只想将 txt 文件移动到一个名为文件夹 B 的新文件夹中。最后,我希望看到以下文件夹结构和内容。

文件夹 A
|
|___book.csv

文件夹 B
|
|___文件夹 A_book.txt

我能够使用的代码如下,但它不起作用。

for file in *; find . -name '*.txt'; -exec mv '$file'.{} ./Folder\ B;

请建议我。

答案1

那将是一行代码:

for f in *.txt; do mv "$f" ../Folder\ B/"${PWD##*/}"_"$f"; done

或者多行等效代码:

for f in *.txt
    do 
    mv "$f" ../Folder\ B/"${PWD##*/}"_"$f"
    done

假设Folder AFolder B处于同一级别,运行上述代码(任意一个) 从内部文件夹 A

相关内容