回答:
askubuntu-QAにはすばらしい答えがあります。
これを行うには、ターミナルを開き、次のコマンドを実行します。
mv -v ~/Downloads/* ~/Videos/
すべてのファイルとフォルダーをダウンロードフォルダーからビデオフォルダーに移動します。
フォルダではなくすべてのファイルを移動するには:
ただし、(フォルダーではなく)すべてのファイルをダウンロードフォルダーからビデオフォルダーに移動する場合は、このコマンドを使用します
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
サブフォルダーからではなく、ダウンロードフォルダーからのみファイルを移動するには:
Downloadsフォルダーからすべてのファイルを移動し、Downloadフォルダー内のフォルダー内のファイルは移動しない場合は、次のコマンドを使用します。
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
ここで、
-maxdepth
option1
は、findコマンドで指定されたディレクトリのみを検索する方法を 指定します。あなたは使用して試すことができ2
、3
また、テストに。詳細な説明については、Ubuntu findのマンページを参照してください。
find /src/dir -type f -exec mv --backup=numbered -t /dst/dir {} +
このコマンドは、/src/dir
(すべてのサブディレクトリを含む)の下にあるすべての通常のファイルを検索し/dst/dir
、commandを使用してそれらに移動しますmv
。ディレクトリを自分のものに置き換えるだけです。同じ名前のファイルは自動的に名前が変更されます。
MP3ファイルのみを移動する-iname "*.mp3"
場合は、find
コマンドの後にオプションを追加します-type f
。
c0devの応答の2番目のコマンドのみが質問に回答します。以下は、この返信との比較です。ポイント3と4は、ここと同じ方法で他の返信で解決できます。
mv
ソリューションは、またはの-exec +
ような追加のコマンドを呼び出して、ファイル名を2回渡す必要はありません。xargs
parallel
--backup=numbered
。残念ながら、接尾辞のようなこれらのバックアップ~3~
は、デフォルトで管理されるほとんどのファイルで非表示になります。残念ながらmv
、接尾辞の変更は許可されていませんが、追加のコマンドで簡単に後処理できます。これはGNU拡張機能です。-print0
-exec command {} +
、IEEE Std 1003.1(POSIX)、ISO / IEC 9945およびThe Single UNIX Specification標準の一部です。したがって、より移植性が高いはずです。参照IEEE STD 1003.1、2004 Editionの、IEEE STD 1003.1、2013年版および0000243: "検索"に-print0を追加します。しかし、とにかく必要な-t
切り替えmv
はGNU拡張であるため、POSIXシステム間でコマンド全体を移植することはできません。注:この場合find
、-
(find
現時点ではそのような実装はわかりません)で始まるパスを生成でき{}
ます--
。オプションの最後のインジケーターを前に付ける必要があります。
{}
は最後の引数としてでなければならないようです。修正しました。
残念ながら、マークされた解決策についてコメントするほどの評判はありません。しかし、私が遭遇した問題について他の人に警告したかったのです。かなりアマチュアです。ただし、いくつかのことをしているとき、最初は思い浮かばないかもしれません。うまくいけば、他の人の助けになるでしょう。
コマンドの開始後に、次のメッセージのバリエーションが提供されました。その後、コマンドは複数のファイルを作成します。
mv: `/data/share/docs/src/dir/filename.ext' and `/data/share/docs/src/dst/filename.ext' are the same file
/src
親である/dst
(例えば/src/../dst/
)。
より良い解決策があるかもしれませんが、ファイルを自分の外部の一時ディレクトリに/src
移動し、コマンドを再実行して、目的の/src/../dst
ディレクトリに戻しました。
私のワンライナー-これはMacでも動作しますが、* nixでも動作するはずです。親ディレクトリから開始します。
# Move files to parent and delete empty folders
find . -not -type d -print0 | xargs -0J % mv -f % . ; find . -type d -depth -print0 | xargs -0 rm -rf
最初の部分は、すべてをすべてのサブフォルダーから、コマンドを開始する実際のフォルダーに移動します。2番目の部分では、サブディレクトリが空であるかどうかを確認し(これで:-)、サブディレクトリを削除して、サブディレクトリなしですべてを取得できるようにします。