1

我有大约 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,但没有扩展名。

4

4 回答 4

4

其实答案很简单:

您可以找到它们并排除目录:

cp ` find <your directory tree base> ! -type d` <your destination directory>

“!-type d”自然会排除“目录”类型的结果。

高温高压

于 2012-04-23T13:12:42.880 回答
1

这个怎么样?

mv /users/me/collection/*/* /users/me/collection-all/
于 2012-04-23T13:19:56.127 回答
1

我的两分钱

cd /users/collections/me
find . -type f -exec mv {} /users/me/collection-all/ \;
于 2012-04-23T13:21:32.990 回答
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使用适当的路径即可。

于 2013-08-17T00:33:34.993 回答