SSHを使用してあるディレクトリからネストされたディレクトリにファイルを移動する方法は?

SSHを使用してあるディレクトリからネストされたディレクトリにファイルを移動する方法は?

すべてのファイル(フォルダやディレクトリを除く)を既存のフォルダやディレクトリより2つ下のレベルに移動する方法を知りたいです。

答え1

findコマンドを使用する必要があります。

find . -type f -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir ; mv ../backup_dir ./new/directory

findが移動する新しいファイルを探すループに閉じ込められるのを防ぐために、ファイルを1レベル上に移動しました。次に、ディレクトリを2つのレベルより下に移動します。

現在のディレクトリのファイルのみが必要な場合は、次のコマンドを使用できます。

find . -type f -maxdepth 1 -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir 

答え2

zshが利用可能な場合、これは非常に簡単です。このパターンは*すべてのファイル(ディレクトリを含む)と一致します。通常のファイルのみを一致させるには、次を追加します。グローバル予選 .。 Glob修飾子はzshの機能です。

mv *(.) existing/subsubdirectory/

(名前が(「dot-file」)で始まるファイルは実際には*スキップされます.。ここでは問題にならない可能性がありますが、移動する必要がある場合はD括弧内にファイルを入れてください)

関連情報