2012-04-23 12 views
1

相当する数のフォルダに〜1000個のファイル(拡張子なし、つまり110511065231など)の大きなコレクションがあります。私がやりたいことは、サブディレクトリ内のすべてのこれらのファイルを移動する簡単な方法(すなわちを見つけることです複数のディレクトリに拡張子のないファイルを1つのディレクトリに移動する

/users/me/collection/1105/1455/users/me/collection/1106/1466/users/me/collection/1110/1470、などなど

1455:すなわち、それはそうのような数千個のファイルであります、14661470など)を単一のディレクトリ(つまり、/users/me/collection-all/)に変換します。

正直言って、拡張機能の欠如は私を捨ててしまいました。私はfindディレクトリをファイルの横に置いているようです...それらは実際はすべてのPDFですが、拡張子はありません。

+0

あなたが話しているファイルのディレクトリ以外に、コレクションには何かがありますか? – Jasper

+0

@ジャスパーいいえ、それはサブディレクトリの単なるディレクトリで、それぞれに拡張子のないファイルが1つあります。 –

答えて

1

この点についてはどうですか?

mv /users/me/collection/*/* /users/me/collection-all/ 
4

は、実際には答えは非常に簡単です:

あなたはディレクトリそれらを見つけると、除外することができます:「!-typeはD」

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

自然タイプの結果を除外します「ディレクトリ"

HTH

1

私の2セント

cd /users/collections/me 
find . -type f -exec mv {} /users/me/collection-all/ \; 
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を交換してください。

関連する問題