テキストファイルからファイルリストを読み、移動し、bash内のディレクトリ構造を維持します。

テキストファイルからファイルリストを読み、移動し、bash内のディレクトリ構造を維持します。

質問した内容に似ていますここ、ディレクトリ構造を維持しながら、あるフォルダから別のフォルダにファイルの一覧を移動しようとしています。 move コマンドは、bash スクリプトの前の一連のイベントの後に発生します。

リンクされた例では、mvコマンドはスクリプトがルックアップを実行している間に動的に発生します(別のCシェルでは?)。まず、AVスキャンを介してリスト内のファイルを処理する必要があるため、この方法は機能しません。 AVスキャンを通過したら、ディレクトリ構造を維持しながらターゲットに移動したいと思います。

私の元の解決策は

while read moveitems; do
  printf "mv \"$moveitems\" \"$hotfolder\"\n"
done <"$filesin" | tee -a "filemoves" >/dev/null
chmod +x $filemoves
$filemoves >> $scanlog

これは、すべてのファイルをフォルダに移動する場合にのみ機能し、この場合には適していません。

私はこの問題に対するよりエレガントで効率的な解決策がたくさんあると確信しています。残念ながら私は右脳型の人であり、この種のことは私には簡単には近づいていません。助けてください!ありがとう

答え1

ファイルのすべてのファイル名を参照してください。以下のコマンドは、すべてのファイル名をターゲットディレクトリに移動します。

awk '{print "mv " " " $1  " " "/Destinationpath"}' filename|sh

関連情報