搜索、重命名和 mv 目录和子目录中的所有文件
search and rename and mv all files from directories and subdirectories
我有很多文件30k directories, 21k files
txt
个同名文件的目录和子目录
├── cases__in_africa
│ ├── 2020/10/01.txt
│ ├── 2020/10/02.txt
│ ├── 2020/10/03.txt
│ └── 2020/10/04.txt
├── death_in_africa
│ ├── 2020/10/01.txt
│ ├── 2020/10/02.txt
│ ├── 2020/10/03.txt
│ └── 2020/10/04.txt
2926 directories, 21646 files
我想搜索很多子目录中的所有文件,而不是将它们重命名为其他唯一名称以将它们移动到其他目录。
此命令不显示重复文件
find . -name "*.txt" -exec mv "{}" ./all \;
如果您正在寻找顺序命名,您可以这样做,假设目标目录 all
确实存在于您的当前目录中。:
for file in $(find ./ -type f -name "*.txt"); do ((count++)) ; mv $file ./all/${count}.txt; done
find -name '*.txt' -exec bash -c 'mv "{}" "$RANDOM.txt"' \;
我有很多文件30k directories, 21k files
txt
个同名文件的目录和子目录
├── cases__in_africa
│ ├── 2020/10/01.txt
│ ├── 2020/10/02.txt
│ ├── 2020/10/03.txt
│ └── 2020/10/04.txt
├── death_in_africa
│ ├── 2020/10/01.txt
│ ├── 2020/10/02.txt
│ ├── 2020/10/03.txt
│ └── 2020/10/04.txt
2926 directories, 21646 files
我想搜索很多子目录中的所有文件,而不是将它们重命名为其他唯一名称以将它们移动到其他目录。
此命令不显示重复文件
find . -name "*.txt" -exec mv "{}" ./all \;
如果您正在寻找顺序命名,您可以这样做,假设目标目录 all
确实存在于您的当前目录中。:
for file in $(find ./ -type f -name "*.txt"); do ((count++)) ; mv $file ./all/${count}.txt; done
find -name '*.txt' -exec bash -c 'mv "{}" "$RANDOM.txt"' \;