我有大量的约1,000个文件(没有扩展名,即1105
,1106
,5231
等),分布在相应数量的文件夹中。即它是一千个这样的文件:
/users/me/collection/1105/1455
,/users/me/collection/1106/1466
,/users/me/collection/1110/1470
等等。
我想要做的是找到一种快速方法将子目录中的所有这些文件(即1455
,1466
,1470
等)移动到一个目录中(即/users/me/collection-all/
)。
说实话,缺少扩展程序会让我失望,而且我似乎将find
目录与文件放在一起......它们实际上都是PDF文件,但没有扩展名。
答案 0 :(得分:4)
事实上答案非常简单:
你可以找到它们并排除目录:
cp ` find <your directory tree base> ! -type d` <your destination directory>
“!-type d”自然会排除“目录”类型的结果。
HTH
答案 1 :(得分:1)
这个怎么样?
mv /users/me/collection/*/* /users/me/collection-all/
答案 2 :(得分:1)
我的两分钱
cd /users/collections/me
find . -type f -exec mv {} /users/me/collection-all/ \;
答案 3 :(得分:1)
你可以试试这个:
#!/bin/bash
IFS_BACKUP=$IFS
IFS=$'\n\t'
for i in $(find $source_directory -type f -iname "*" -print)
do
mv -nv "$i" "$target_directory"
done
IFS=$IFS_BACKUP
exit
请务必使用适当的路径替换变量$source_directory
和$target_directory
。