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

Bash 将多个目录中没有扩展名的文件移动到一个目录中,bash,Bash,我有大约1000个文件(无扩展名,即1105,1106,5231,等等)分布在相应数量的文件夹中。i、 e.有一千个这样的文件: /users/me/collection/1105/1455,/users/me/collection/1106/1466,/users/me/collection/1110/1470等 我想做的是找到一种快速方法,将子目录中的所有这些文件(即1455,1466,1470,等等)移动到一个目录中(即/users/me/collection all/) 老实说,缺少扩展

我有大约1000个文件(无扩展名,即
1105
1106
5231
,等等)分布在相应数量的文件夹中。i、 e.有一千个这样的文件:

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

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


老实说,缺少扩展名让我很反感,我似乎一直在
查找
文件旁边的目录。。。它们实际上都是PDF,但没有扩展。

事实上答案很简单:

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

cp ` find <your directory tree base> ! -type d` <your destination directory>
cp`find-d型`
“!-type d”自然会排除类型“directory”的结果


HTH

事实上答案很简单:

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

cp ` find <your directory tree base> ! -type d` <your destination directory>
cp`find-d型`
“!-type d”自然会排除类型“directory”的结果

这个怎么样

mv /users/me/collection/*/* /users/me/collection-all/
这个怎么样

mv /users/me/collection/*/* /users/me/collection-all/
我的两分钱

cd /users/collections/me
find . -type f -exec mv {} /users/me/collection-all/ \;
我的两分钱

cd /users/collections/me
find . -type f -exec mv {} /users/me/collection-all/ \;
您可以尝试以下方法:

#!/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\u directory
$target\u directory

您可以尝试以下操作:

#!/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\u directory
$target\u directory

集合中除了包含您正在谈论的文件的目录之外,还有什么吗?@Jasper没有,它只是子目录的目录,每个目录都有一个文件,没有扩展名。除了你所说的包含文件的目录之外,集合中还有什么吗?@Jasper没有,它只是一个包含子目录的目录,每个目录都有一个文件,没有扩展名。