コマンドラインを使用してすべてのファイルをあるフォルダーから別のフォルダーに移動するにはどうすればよいですか?


245

コマンドラインを使用して、すべてのファイルをフォルダーから別のフォルダーに移動する方法を教えてください。

私がダウンロードフォルダにいて、すべてのファイル名を書き込まずに、ビデオフォルダに移動したいファイルが100個あるとします。


あなたは移動について尋ねていますfilesが、人々はあなたに移動方法だけでfilesなくfolders、同様に移動する方法を示しています。それは大丈夫ですか?
アスカル

2
@HontváriLeventeは1年前に答えを出しました。では、どのようにして3票しか得られなかったのでしょうか(現在トップの回答の262と比較して)?
レイバターワース

回答:


331

ターミナルを開き、次のコマンドを実行します。

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

ここで、-maxdepthoption 1は、findコマンドで指定されたディレクトリのみを検索する方法を指定します。あなたは使用して試すことができ23テストすることも。

詳細な説明については、Ubuntu findのマンページを参照してください


3
mvのみを使用してディレクトリ全体を別のフォルダーに移動できます
。mvfolder〜

20
参考までに、最初のコマンド( "mv -v〜/ Downloads / *〜/ Videos /")はドットファイルを移動しません。
マークドライナー14

1
はい、.filesは移動しません
Anwar 14

3
Nb。あなたは、-print0 | xargs -0 mv -t ~/Videosより効率的に行うことができます-exec mv -t ~/Videos \{\} \+:-)
artfulrobot

3
mv -v ~/Downloads/* ~/Videos/隠しファイルでは動作しません
FreeLightman

28
mv ~/Downloads/* ~/Videos

目的のディレクトリ内のサブフォルダを含むすべてのファイルを移動しますmv。あなたがしたい場合cp(コピー)、またはrmあなたが必要となります(削除)-rサブフォルダを含めるように(再帰的)オプションを選択します。


2
私のmvコマンドには-Rオプションがありません(Ubuntu 14.04)。
マークドライナー14

1
@MarkDoliner、はい、mvサブフォルダーを含めるための再帰オプションは必要ありません。名前の変更にも使用できます。
アレン

*は必要ありませんでした。星を使わずに同じことが起こりました。
MycrofD

フォルダー名のプレフィックスの〜/が常に機能するとは限りません(bashおよびgit atleastでは機能しません)
Krish Munot

ソースディレクトリが空の場合、このソリューションはエラーになります。
ピエールティボー

11

簡単な場合:

mv ~/Downloads/* ~/Videos

ドット(非表示)ファイルも移動する場合は、dotglobシェルオプションを設定します。

shopt -s dotglob
mv ~/Downloads/* ~/Videos

これにより、シェルオプションセットが残ります。

一度ドットグロブを使用するには、サブシェルでコマンドを実行します。

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

自分への注意:最後のオプション(shopt -s dotglob; mv ~/Downloads/* ~/Videos) 、コンテンツ(隠しファイルを含む)のみを移動(カット)します。この場合、起点フォルダーと宛先フォルダーの両方が既に存在している必要があります。最後に、起点ディレクトリは空になります。
パトロス

これが受け入れ答えなければなりません
megar

11

を使用することで可能rsyncです、例えば:

rsync -vau --remove-source-files src/ dst/

どこ:

-v--verbose:冗長性を増やします。

-a--archive:アーカイブモード。等しい-rlptgoD(なし-H-A-X)。

-u--update:受信側で新しいファイルをスキップします。

--remove-source-files これは、転送の一部であり、受信側で正常に複製されたrsyncファイル(非ディレクトリを意味する)を送信側から削除するよう指示します

ルート権限を持っている場合は、接頭辞を付けsudoて、潜在的な権限の問題を無効にします。


1
警告!前述の--delete-afterオプションは、期待どおりに機能しません。コピーが成功してもソースファイルは削除されません...宛先の残りのファイルやその他のファイルはすべて削除されます。(!@kenorbが指摘...しかし、私は慎重に十分なDOHを読んでいないなど)
ジェイMARM

4

つかいます

mv -v ~/rootfolder/branch/* ~/rootfolder

これがお役に立てば幸いです。私は同じ痛みを経験し、ミスを修正するのに多くの時間を無駄にしたからです。


2

mvコマンドを使用してファイルの名前を変更する方法と同じように、コンテンツのあるディレクトリまたはないディレクトリを新しい名前に移動するには:

mv -T dir1 dir2

どこ:

  • -T 宛先を通常のファイルとして扱います
  • dir1 ディレクトリの元の名前です
  • dir2 ディレクトリの新しい名前です

注意:dir2存在する必要はありません。

これにより誰かが多くの時間を節約できることを願っています。この前に、新しい名前でディレクトリを作成し、ディレクトリの内容を以前に作成したディレクトリに移動します。

サブディレクトリに使用

このコマンドは、多くのファイルがターゲットディレクトリのサブフォルダに保存されている場合に便利ですDownloads/mp4。この例では、実行mv -T Downloads/mp4 Videosするとmp4サブフォルダーが削除され、内部に含まれるすべてのファイルがビデオフォルダーに移動します。


1
+1は、Xubuntu 14.04でテストされているためです。このコマンドがdir1削除されることを示すために、この回答に例を追加しました。この予防策とは別に、この回答は日常の使用に適した何かを指摘しています。
clearkimura

1
「コンテンツを含むまたは含まないディレクトリを新しい名前に移動するには」ディレクトリを名前に移動するにはどうすればよいですか?それは意味がありません。「-Tは宛先を通常のファイルとして処理します」宛先をファイルにするにはどうすればよいですか?ディレクトリを意味しますか?
モニカヘドネック

そのようなもので行うのと同じようにファイルの名前を新しい名前に変更するようなものですが、この場合mv fileA fileB-Tフラグは宛先/ディレクトリをファイルとして扱い、名前を変更します。
Feyisayo Sonubi

私のために働いた:)
Naveen Kumar V

1
  1. コマンドラインに移動し、移動先のディレクトリに移動します cd folderNamehere
  2. を入力しpwdます。これにより、移動するディレクトリも印刷されます。
  3. 次に、すべてのファイルがあるディレクトリに移動します cd folderNamehere
  4. 次に、すべてのファイルの種類を移動します mv *.* typeAnswerFromStep2here

これにより、すべてのファイルがそのディレクトリから他のディレクトリに移動します。


3
これは、拡張子のないファイルには一致しません。たとえば、フォルダに次のファイルがある場合:foo.txtbar.およびbarその両方でbar.bar移動されません。*代わりに*.*を使用すると、その面倒を見ることができます。ただし、どちらの場合も、次のような隠しファイル.foobarは移動されません。
ダン

1
mv source_path/* destination_path/

ここで*は、完全なソースディレクトリではなく、source_path内のファイルを取得するために、ソースパスの後にスラッシュを配置する必要があります。

例: mv /home/username/test/* /home/username/test2/

上記のコマンドは、ソースディレクトリ内のすべてのファイル(非表示でない限り)を宛先ディレクトリに移動します。


0

それを試してみてください

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

引数-typeを指定した-typeでは、このステートメントでtype file。を指定できます。これは、ディレクトリを意味する-dを使用した場合の平均file.ifです。

-iname: ファイルを探す最も一般的で明白な方法は、-name引数を使用することです。大文字と小文字の区別が不明な場合は、-iname引数を使用できます

mv {} そして最後にターゲットディレクトリを指定し、mv {}引数を使用してそこにファイルを移動します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.