【发布时间】:2022-01-28 04:21:01
【问题描述】:
我有几个文件夹,其中包含我的笔记的 Word 文档文件。我想运行一个简单的 bash 循环来帮助组织名称。
目前的布局是: 数据
folder1
1.jpg
2.jpg
folder2
1.jpg
..等等
我想将所有 jpg 文件重命名为 folderX_1.jpg。
可以只写一个循环吗?
【问题讨论】:
标签: bash shell command-line
我有几个文件夹,其中包含我的笔记的 Word 文档文件。我想运行一个简单的 bash 循环来帮助组织名称。
目前的布局是: 数据
folder1
1.jpg
2.jpg
folder2
1.jpg
..等等
我想将所有 jpg 文件重命名为 folderX_1.jpg。
可以只写一个循环吗?
【问题讨论】:
标签: bash shell command-line
试试这个:
#!/bin/bash
origdir=$(pwd)
rm -fr source
mkdir source
cd source
mkdir folder1
touch folder1/1.jpg
touch folder1/2.jpg
mkdir folder2
touch folder2/1.jpg
cd ..
find source -type f -print0 | while IFS= read -r -d '' onefile
do
dirname=$(dirname "$onefile" | tr '/' '-')
filename=$(basename "$onefile")
cp "$onefile" "$origdir"/"$dirname"-"$filename"
done
find ... | while ... 循环遍历目录/子目录结构中的每个文件。cp 更改为mv
【讨论】: