将多个目录中没有扩展名的文件移动到一个目录中

时间:2012-04-23 13:10:28

标签: bash

我有大量的约1,000个文件(没有扩展名,即110511065231等),分布在相应数量的文件夹中。即它是一千个这样的文件:

/users/me/collection/1105/1455/users/me/collection/1106/1466/users/me/collection/1110/1470等等。

我想要做的是找到一种快速方法将子目录中的所有这些文件(即145514661470等)移动到一个目录中(即/users/me/collection-all/)。

说实话,缺少扩展程序会让我失望,而且我似乎将find目录与文件放在一起......它们实际上都是PDF文件,但没有扩展名。

4 个答案:

答案 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