2016-09-23 11 views
0

私はLinux-Systemを使用しています。このディレクトリには、ユーザが作成できるサブディレクトリがあります。今私はそれらのサブディレクトリ内のすべてのファイルを検索し、それらを単一のディレクトリ(バックアップ用)に移動するスクリプトが必要です。問題:サブディレクトリは削除しないでください。Linuxはサブディレクトリ内のすべてのファイルを見つけて移動します

ディレクトリは/ files/media/documents/ であり、ファイルはDirectory/files/dump /に移動する必要があります。私は/ files/media/documents /にあるファイルを気にしませんが、別のスクリプトですでに処理されています。

私はすでにこのスクリプトを試してみました:代わりに反復処理の

for dir in /files/media/documents/ 
do 
    find "$dir/" -iname '*' -print0 | xargs -0 mv -t /files/dump/ 
done 

答えて

1

、あなただけの検索を使用することができます。マン・ページではありファイルのみを移動するためのあなたができるように、「型」オプションは、文書化されている:

find "/files/media/documents/" -type f -print0 | xargs -0 mv -t /files/dump/ 

あなたも文句を言わないで/ファイル/メディア/文書/ファイルを見つけることが好きですが、すべてのサブディレクトリ? DIRため :

find "/files/media/documents/" -type f -mindepth 1 -exec mv {} /files/dump/ \; 
+0

は、私はまた、別の方法が見つかりました:

find "/files/media/documents/" -type f -mindepth 1 -print0 | xargs -0 mv -t /files/dump/ 

Alternativlyあなたはまた、2番目のコマンド(xargsの)をスキップする "-exec" 使用することができます:単に "-mindepth" を追加中/ファイル/メディア/文書/ * \tのMVの$ DIR/* /ファイル/ダンプ/ が、これはあまりにも正しい、あまりに –

+0

ザッツを動作するようですが、それはあなたのsubdirectorにディレクトリでは動作しません を行ってくださいこれらのサブサブディレクトリも移動します。それが問題でないなら、あなたのfor-loopが同じことをします;-) –

+0

サブ - サブディレクトリについては気にしません。なぜなら、それらが存在していても、それらも移動しなければならないからです。 –

関連する問題